Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Информатика, помогите с задачей python 8класс

Павел Потехин Ученик (81), закрыт 11 месяцев назад
На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём. Найти максимальное из введённых чисел оканчивающее на 1. Дальше while мы не прошли!!!
Дополнен 11 месяцев назад
Код состоит из тем 8 класса информатики, мы дошли до цикла "while" И не более, а в конце кода нужно выдать ответ из введённых до нуля чисел
Лучший ответ
Папа Высший разум (121735) 11 месяцев назад
Можно так, в принципе:
 def compose(f, g, h): return lambda *args, **kwargs: f(g(h(*args, **kwargs)))
print(max(filter(compose((1).__eq__, (10).__rmod__, abs), map(int, iter(input, '0'))), default = 'Нет чисел, оканчивающихся на 1'))
Но если "слооооожно", то так:
 print(max((n for n in map(int, iter(input, '0')) if abs(n) % 10 == 1), default = 'Нет чисел, оканчивающихся на 1')) 
Это Питон на минималках.

А решать данную задачу циклом while - это уже не Питон, а Паскаль. Ладно, раз старика Блеза в честь Пасхи назвали, приведу и этот вариант:
 m = 0
while (n := int(input())) != 0:
if abs(n) % 10 == 1 and (n > m or m == 0): m = n
print(m if m else 'Нет чисел, оканчивающихся на 1')
Обращаем внимание, что числа -31, -1551 и т.п., тоже оканчиваются на 1, но дают остаток 9, а не 1, при делении на 10. Поэтому делим абсолютную величину. И конечно, максимум может быть отрицательным, если все числа, оканчивающиеся на 1, были отрицательными.

Примеры.
Входные данные:
 -31
-9
4
8
-181
0
Выходные данные:
 -31 
Входные данные:
 54
42
0
Выходные данные:
 Нет чисел, оканчивающихся на 1 
Остальные ответы
Сергей Серегин Мастер (1558) 11 месяцев назад
 inp = 1 
max_num = 0
all_nums = ""
while inp != "0":
inp = input()
if int(inp) % 10 == 1 and int(inp) > max_num:
max_num = int(inp)
all_nums = all_nums + " " + inp
print(max_num)
print(all_nums)
Похожие вопросы