разработайте программу, которая получает от пользователя натуральные числа до тех пор, пока не будет введено число 0, и вычисляет сумму максимальных цифр всех введённых чисел
Ответы
Ответ:
total_sum = 0
while True:
number = int(input("Введите натуральное число (или 0, чтобы закончить): "))
if number == 0:
break
max_digit = 0
while number > 0:
digit = number % 10
if digit > max_digit:
max_digit = digit
number = number // 10
total_sum += max_digit
print(f"Сумма максимальных цифр всех введенных чисел: {total_sum}")
Объяснение:
Цикл while True будет выполняться бесконечно, пока не будет выполнен оператор break, который прерывает цикл.
Пользователь вводит натуральное число с помощью функции input. Эта функция возвращает строку, поэтому нужно привести ее к типу int с помощью функции int.
Если введенное число равно 0, то выполняется оператор break, который прерывает цикл.
В переменной max_digit хранится максимальная цифра введенного числа. Для этого мы используем вложенный цикл while number > 0, который выполняется, пока значение number больше нуля. Внутри цикла мы вычисляем цифру числа number, используя оператор взятия остатка от деления %, и обновляем значение max_digit, если цифра больше текущего значения. Также мы делим число number на 10, чтобы получить целое число без последней цифры (оператор // выполняет целочисленное деление).
Когда цикл заканчивается, мы увеличиваем значение total_sum на максимальную цифру числа.
После того, как пользователь введет 0, цикл прерывается и выводится сумма максимальных цифр всех введенных чисел.