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

    0

    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
    94. 94
    95. 95
    96. 96
    97. 97
    def number_to_words(n):
        if n == 1:
            print('один')
            exit()
        elif n == 2:
            print('два')
            exit()
        elif n == 3:
            print('три')
            exit()
        elif n == 4:
            print('четыре')
            exit()
        elif n == 5:
            print('пять')
            exit()
        elif n == 6:
            print('шесть')
            exit()
        elif n == 7:
            print('семь')
            exit()
        elif n == 8:
            print('восемь')
            exit()
        elif n == 9:
            print('девять')
            exit()
        elif n == 10:
            print('десять')  
            exit()
        elif n == 11:
            print('одиннадцать')
            exit()
        elif n == 12:
            print('двенадцать')
            exit()
        elif n == 13:
            print('тринадцать')
            exit()
        elif n == 14:
            print('четырнадцать')
            exit()
        elif n == 15:
            print('пятнадцать')
            exit()
        elif n == 16:
            print('шестнадцать')
            exit()
        elif n == 17:
            print('семнадцать')
            exit()
        elif n == 18:
            print('восемнадцать')
            exit()
        elif n == 19:
            print('девятнадцать')
            exit()
        elif n == 20:
            print('двадцать')
            exit()
        elif n == 21:
            print('двадцать один')
            exit()
        elif n == 22:
            print('двадцать два')
            exit()
        elif n == 23:
            print('двадцать три')
            exit()
        elif n == 24:
            print('двадцать четыре')
            exit()
        elif n == 25:
            print('двадцать пять')
            exit()
        elif n == 26:
            print('двадцать шесть')
            exit()
        elif n == 27:
            print('двадцать семь')
            exit()
        elif n == 28:
            print('двадцать восемь')  
            exit()
        elif n == 29:
            print('двадцать девять')
            exit()
        elif n == 30:
            print('тридцать')
            exit()
        elif n == 31:
            print('тридцать один')
            exit()
        elif n == 32:
            print('тридцать два')
            exit()

    так до 99. Оригинал: https://www.cyberforum.ru/python-beginners/thread2390750.html
    P.S. exit-ы то зачем????

    Запостил: makpif, 21 Января 2022

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

    • Наверно, индус спутал elseif с сишным switch. Там инструкция явно просит break после выполнения каждого условия.
      Ответить
    • # https://ideone.com/P3vSY4
      def number_to_words(n):
      	if n < 1 or n > 99:
      		print('Ошибка')
      	low = [
      		'',
      		'один',
      		'два',
      		'три',
      		'четыре',
      		'пять',
      		'шесть',
      		'семь',
      		'восемь',
      		'девять',
      		'десять',
      		'одиннадцать',
      		'двенадцать',
      		'тринадцать',
      		'четырнадцать',
      		'пятнадцать',
      		'шестнадцать',
      		'семнадцать',
      		'восемнадцать',
      		'девятнадцать',
      	]
      	s = ''
      	if n > 19:
      		high = [
      			'двадцать ',
      			'тридцать ',
      			'сорок ',
      			'пятьдесят ',
      			'шестьдесят ',
      			'семьдесят ',
      			'восемьдесят ',
      			'девяносто ',
      		]
      		s += high[n // 10 - 2]
      		n = n % 10
      	s += low[n]
      	return s
      	
      for i in range(1, 100):
      	print(i)
      	print(number_to_words(i))
      Ответить
      • Я знаю как правильно сделать, просто случайно наткнулся на данное творенье
        Ответить
      • Переведи на «английский»
        Ответить
        • Не это просто, у русского и английского похожее строение числительных. Для каждого языка сделать свои списки.

          А вот, например, для немецкого придётся писать другую функцию.
          Ответить
          • Можешь на японский перевести, там тоже много вкусного. Разбивка по 4 разряда, разница в нормах написания в зависимости от размера, использование разных форм в зависимости от контекста...
            Ответить
            • В каких-то языках ещё встречается уникальная разбивка.

              Индусы группируют три младших разряда, а дальше разбивают по два. То есть у них собственные названия для 100 тысяч, 10 миллионов, миллиарда, 100 миллиардов, 10 триллионов и т. д., а вот собственных названий для миллиона и для триллиона нету.
              Ответить
            • Поглядел.

              У больших чисел и у десятичных дробей неоднозначность интерпретации по историческим причинам. Можно на несколько порядков ошибиться.

              У некоторых числительных есть альтернативные названия по причине заимствований из китайского. У корейцев и у вьетнамцев точно такая же проблема: свои старые названия и китайские.
              Ответить
          • Да, в немецком для двухзначных после двадцати обратный порядок слов.

            Во французском тоже интересно: у них для двухзначных, начиная с 70 (или с 60, эффект тот же), двадцатеричная система счисления. То есть 72 — это 60+12; 96 — это 80+16.
            Ответить
            • Угадайте с одного раза, какой порядок слов в нидерландских двухзначных числительных.
              Ответить
              • Единицы посередине десятков!
                Ответить
                • У голландцев всё, как у немцев.

                  tweeënveertig = twee (два) + veertig (сорок) = сорок два.

                  И, как у немцев, в одно слово.

                  en — это союз. Две точки над «e» поставили, чтобы отделить от основы, заканчивающейся на «ee» (какой ужас).
                  Ответить
          • ну одиннадцать-девятнадцать как полностью самостоятельный класс чисел есть у всех, хуй знает почему
            Ответить
            • Наверное, когда стали испольховать числа > 19, правила нэйминга изменились
              Ответить
              • Когда троглодиты скакали по деревьям, то наверняка догадались все хватательные пальцы пересчитывать
                Ответить
                • Опровергаю. В «‎подземелье»‎ нет никаких деревьев, чтобы по ним скакать. Их все спалили кожевенники черные драконы.
                  Ответить
          • А теперь посмотрим какой-нибудь изолированный язык.

            Например, грузинский. В нём у двухзначных числительных двадцатеричная система. Т. е. для 30, 50, 70, 90 отдельного слова нет.

            В баскском такая же фигня.
            Ответить
    • а до гуголиона можешь?
      Ответить
    • Миллион
      Шел по улице отряд —
      сорок мальчиков подряд:
      раз,
      два,
      три,
      четыре
      и четырежды
      четыре,
      и четыре
      на четыре,
      и еще потом четыре.

      В переулке шел отряд —
      сорок девочек подряд:
      раз, два,
      три, четыре,
      и четырежды
      четыре,
      и четыре
      на четыре,
      и еще потом четыре.

      Да как встретилися вдруг —
      стало восемьдесят вдруг!
      Раз,
      два,
      три,
      четыре,
      и четыре
      на четыре,
      на четырнадцать
      четыре,
      и еще потом четыре.

      А на площадь
      повернули,
      а на площади стоит
      не компания,
      не рота,
      не толпа,
      не батальон,
      и не сорок,
      и не сотня,
      а почти что
      МИЛЛИОН!

      Раз, два, три, четыре,
      и четырежды
      четыре,
      сто четыре
      на четыре,
      полтораста
      на четыре,
      двести тысяч на четыре!
      И еще потом четыре!
      Ответить
      • Круто он раскладывает.

        В последнем примере 801 040 — это «почти что миллион». Но автор и не обещал точного результата.

        В остальных примерах обещанные суммы получаются точно.

        Интересные трюки с 20 = 4*4 + 4 и 60 = 14*4 + 4.
        Ответить
        • Придумал: 100 — это 24 на четыре, а потом ещё четыре.

          300 — это 74 на четыре, а потом ещё четыре.

          500 — это 124 на четыре, а потом ещё четыре.
          Ответить
          • 10000000000000000 — это 2499999999999999 на четыре, а потом ещё четыре.
            Ответить
          • 123456 — это 30863 на четыре, а потом ещё четыре.
            Ответить
            • Круто, но хотелось бы, чтобы первый множитель оканчивался на четвёрку.

              Вообще интересны представления в виде суммы слагаемых (10 * x[i] +4) *4, а потом ещё четыре.
              Ответить
              • Т. е. S = 40*sum(x[i]) + 16*n + 4.
                Ответить
              • "nemyx" — это 129358322000 на четыре, да 42, да ещё четыре
                Ответить
              • А как выразить числа не кратные 4?
                Ответить
                • > как выразить числа не кратные 4

                  Поделить на 4: четыре по четыре и четверть четырёх.
                  Ответить
                  • 21 = четыре на четыре ещё четверть на четыре, а потом ещё четыре.
                    Ответить
                • Тридцать тысяч на четыре,
                  И семь сотен на четыре,
                  Семь десятков на четыре,
                  Ещё десять на четыре,
                  И без одного четыре.
                  Ответить
                  • А слабо составить алгоритм, который будет так раскладывать произвольное целое?
                    Ответить
                    • Обучить бездушную машину ритму будет не так просто...
                      Ответить
            • 123456 — это
              30 тысяч на четыре,
              8 сотен на четыре,
              без одного 64 семью девять на четыре,
              а потом ещё четыре.
              Ответить
              • А теперь разложи 123123 на четвёрки.
                Ответить
                • Разложил 123123 на 3, 7, 11, 13 и 41, проверь.
                  Ответить
                  • А теперь разложи j123123 на микроконтроллеры
                    Ответить
                    • А куда делись миникон-троллеры?
                      Ответить
                      • Какие-нибудь ПЛК, наверное?
                        Ответить
                      • блииин, как давно я не видел миникон:) Это красненький такой?
                        Я им заходил на момед и сиську по последовательному порту
                        Ответить
                        • Трансформер, так сложишь - на сиську зайдешь, а по-другому - на жупинер.
                          Ответить
                    • Главное самому не разложиться.
                      Ответить
                    • Один лишь j123123 хороший был программист
                      А все другие остальные — такое дерьмо
                      А все другие враги и такие дураки
                      Над родною над сишкой бесноватый сахар шёл
                      Я купил стандарт крестов — там тоже хорошо
                      Там товарищ Страуструп, там то же что у нас
                      Я уверен, что у них тоже самое —

                      и всё идёт по Комитету!
                      Ответить
                      • j123123 написал прошивку у вас на глазах,
                        Он залил её на флешку у вас на компе,
                        Он обмазался гомоиконами и всем чем мог,
                        А все вы остались крестоблядями!!!
                        Ответить
                      • Компилятор усмехнулся вдребезги
                        В убгорок переполненного интца
                        Ответить
                • Тридцать тысяч на четыре,
                  Полтораста на четыре и ещё раз на четыре,
                  Сорок четыре на четыре и ещё раз на четыре
                  И четыре четыре
                  И без одного четыре.

                  30000*4 + 150*4*4 + 44*4 *4 + 4*4 + (4-1) =
                  = 120_000 + 600*4 + 176*4 + 16 + 3 =
                  = 120_000 + 2400 + 704 + 16 + 3 =
                  = 120_000 + 2400 + 720 + 3 =
                  = 120_000 + 3123 =
                  = 123123.
                  Ответить
            • Я ещё думаю о том, как схему Горнера выразить в стихах. Будет что-то типа «всё умножить на четыре».
              Ответить

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