Змея / Говнокод #27963 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 makpif, (Updated )

Комментарии (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, а потом ещё четыре.
            Ответить
          • 123456 — это
            30 тысяч на четыре,
            8 сотен на четыре,
            без одного 64 семью девять на четыре,
            а потом ещё четыре.
            Ответить
                    • блииин, как давно я не видел миникон:) Это красненький такой?
                      Я им заходил на момед и сиську по последовательному порту
                      Ответить
                      • Трансформер, так сложишь - на сиську зайдешь, а по-другому - на жупинер.
                        Ответить
                  • Один лишь 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.
                Ответить
          • Я ещё думаю о том, как схему Горнера выразить в стихах. Будет что-то типа «всё умножить на четыре».
            Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8