Форум » Циклы и ветвления » Задача №20 » Ответить

Задача №20

mrmar: Здравствуйте! В задании номер 35 ответ 5994. Хотя L равен 3 и, по сути, в ответе тоже должно быть 3 цифры. Это я делаю что-то не так или ответ неверный? У меня получается 994, то есть без цифры 5 спереди.

Ответов - 2

mrmar: Вот код x = int(input()) L = 0; M = 9 while x > 5: L = L + 1 if M > (x % 10): M = x % 10 x = x // 10 print("%d\n%d" % (L, M))

polyakovss: Здравствуйте, mrmar! Речь идёт о задании №35. Вы пишете: Хотя L равен 3 и, по сути, в ответе тоже должно быть 3 цифры. Это было бы верно, если бы было while x > 0. При while x > 5 первая цифра числа, если она меньше или равна 5, не обрабатывается. Это очевидно, если вводится однозначное число. Цикл просто не выполняется. В рассматриваемой задаче в цикле происходит усечение введённого числа с его конца. С учётом сказанного ранее получается, что для чисел 994, 1994, 2994, 3994, 4994 и 5994 программа выведет одно и то же: сначала 3, а потом 4. Наибольшим из этих чисел является 5994. Ответ: 5994. Приведённый Вами код, если отступы в нём расставлены правильно, при вводе 5994 тоже выводит 3 и 4.



полная версия страницы