Программа курса:
Разбор задачи: Добавление цифр
Предложенный нами код решения:
def add_digits(num):
"""
Многократно добавляет все цифры числа до тех пор, пока результат не станет однозначным.
:param num: целое число
:return: однозначное число
"""
while num >= 10:
num = sum(int(digit) for digit in str(num))
return num1. Проверка входных данных
Функция принимает одно целое число num.
- Если число уже является однозначным (т.е. меньше 10), оно будет возвращено сразу без изменений.
2. Основная логика
Цикл while num >= 10:
- Цикл продолжается до тех пор, пока число состоит из более чем одной цифры (т.е.
num >= 10). - В каждом шаге цикла мы складываем все цифры числа.
Обработка цифр числа:
Внутри цикла происходит следующее:
str(num)превращает число в строку, чтобы можно было пройтись по его цифрам.int(digit) for digit in str(num)— это генератор, который поочередно извлекает каждую цифру строки и преобразует её обратно в целое число.sum(...)— функция, которая суммирует все эти числа.
После того как сумма всех цифр посчитана, она присваивается обратно переменной num. Это значение будет использовано на следующей итерации цикла.
Завершение цикла:
Цикл завершается, когда результат сложения цифр становится однозначным (т.е. когда num < 10).
3. Возвращаемое значение:
Когда цикл завершён, функция возвращает конечное значение num, которое является однозначным числом.
Пример:
Пример 1:
num = 38- Изначально число: 38
- 38 → 3 + 8 = 11
- 11 → 1 + 1 = 2
- 2 — однозначное число, возвращаем его.
Пример 2:
num = 0- Изначально число: 0
- 0 — уже однозначное, возвращаем его.
Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии