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

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

Павел Потехин Ученик (76), закрыт 1 месяц назад
На вход программы поступает неизвестное количество целых чисел, ввод заканчивается нулём. Найти максимальное из введённых чисел оканчивающее на 1. Дальше while мы не прошли!!!
Дополнен 1 месяц назад
Код состоит из тем 8 класса информатики, мы дошли до цикла "while" И не более, а в конце кода нужно выдать ответ из введённых до нуля чисел
Лучший ответ
Папа Гений (56340) 1 месяц назад
Можно так, в принципе:
 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 
Остальные ответы
Сергей Серегин Мастер (1230) 1 месяц назад
 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)
Похожие вопросы