1. Python / Говнокод #9399

    −95

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    #!/usr/bin/env python
    
    def add_end(position, num):
        end_str = ''
        if (position == 5) and (num in [0,5,6,7,8,9]):
            end_str = th[0]
            return end_str
        elif (position == 5) and (num in [2,3,4]):
            end_str = th[2]
            return end_str
        elif (position == 5) and (num == 1):
            end_str = th[1]
            return end_str
    
        if (position == 2) and (num in [0,5,6,7,8,9]):
            end_str = th[4]
            return end_str
        elif (position == 2) and (num in [2,3,4]):
            end_str = th[7]
            return end_str
        elif (position == 2) and (num == 1):
            end_str = th[3]
            return end_str
    
        return ('')
    
    
    
    dec1 = ['', ' один', ' два', ' три', ' четыре', ' пять', ' шесть', ' семь', ' восемь', ' девять', ' десять', ' одиннадцать', ' двенадцать', ' тринадцать', ' четырнадцать', ' пятнадцать', ' шестнадцать', ' семнадцать', ' восемнадцать', ' девятнадцать']
    dec2 = ['', '', ' двадцать', ' тридцать', ' сорок', ' пятьдесят', ' шестьдесят', ' семьдесят', ' восемьдесят', ' девяносто']
    dec3 = ['', ' сто', ' двести', ' триста', ' четыреста', ' пятьсот', ' шестьсот', ' семьсот', ' восемьсот', ' девятьсот']
    th = [' тысяч', ' тысяча', ' тысячи', ' миллион', ' миллионов', 'одна', 'две', ' миллиона']
    
    
    numb = input('введите число: ')
    mysum = []
    max_len = 9;
    zero = max_len - len(numb)
    
    for i in range(zero):
        mysum.append('0')
    
    for char in numb:
        mysum.append(char)
    
    for i in range(max_len):
        mysum[i] = int(mysum[i])
    
    for element in mysum:
        if int(element) != 0:
            start_rank = mysum.index(element)
            break
    
    grouprank1 = [2,5,8]
    grouprank2 = [1,4,7]
    grouprank3 = [0,3,6]
    mystr = ''
    while start_rank < max_len:
        if start_rank in grouprank1:
            if (start_rank == 5) and (mysum[start_rank] == 1):
                mystr += th[5] + str(add_end(start_rank, mysum[start_rank]))
            elif (start_rank == 5) and (mysum[start_rank] == 2):
                mystr += th[6] + str(add_end(start_rank, mysum[start_rank]))
            elif start_rank == 5:
                mystr += dec1[mysum[start_rank]] + str(add_end(start_rank, mysum[start_rank]))
    
            if (start_rank == 2) and (mysum[start_rank] == 1):
                mystr += dec1[mysum[start_rank]] + str(add_end(start_rank, mysum[start_rank]))
            elif (start_rank == 2) and (mysum[start_rank] == 2):
                mystr += dec1[mysum[start_rank]] + str(add_end(start_rank, mysum[start_rank]))
            elif start_rank == 2:
                mystr += dec1[mysum[start_rank]] + str(add_end(start_rank, mysum[start_rank]))
    
            if start_rank == 8:
                mystr += dec1[mysum[start_rank]]
    
            start_rank += 1
    
        if (start_rank in grouprank2) and (mysum[start_rank] == 1):
            index_dec2 = str(mysum[start_rank]) + str(mysum[start_rank+1])
            mystr += dec1[int(index_dec2)]
            start_rank += 2
    
        if start_rank in grouprank2:
            mystr += dec2[mysum[start_rank]]
            start_rank += 1
    
        if start_rank in grouprank3:
            mystr += dec3[mysum[start_rank]]
            start_rank += 1
    
    
    print(mystr)

    http://xorout.ru/archives/249 в силу идеи алгоритма и освоивания python чуваку простительно :)

    Запостил: rainz5, 13 Февраля 2012

    Комментарии (8) RSS

    Добавить комментарий