MaxMassad
@MaxMassad
Изучаю программирование в удовольствие :)

Объясните пожалуйста как работает эта программа(циклы)питон?

Здравствуйте. Есть метод Гаусса , как посчитать сумму всех чисел к примеру от 1 до 9, будет 45, от 1 до 100 будет 5050. Это понятно. Но вот есть такая задача , как посчитать сумму всех цифр в числе т.е число 12 будет как 1+2, т.е к примеру 1+2+3+4+5+6+7+8+9+10(1+0)+11(1+1) = 48т.е числа в которых цифр больше чем одна разбиваются на цифры и таким образом суммируются. Вот есть программа не моя, но я запутался, как она это делает. Помогите, если кто понимает подробно расписать как тут работают циклы !
i = 0
x = 0
while i <= 12:
   j = 0
   for j in str (i):
      x += int(j)
   i += 1
print(x)
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
sgjurano
@sgjurano
Разработчик
Программа — образец плохого кода, так лучше не писать, гораздо лучше будет сделать что-нибудь такого рода:

def compute_digits_sum(number):
    digits_sum = 0

    while number:
        digits_sum += number % 10
        number = number // 10

    return digits_sum


def compute_progression_digits_sum(number):
    return sum(compute_digits_sum(i) for i in range(number + 1))


UPD: добавил функцию подсчёта суммы по прогрессии
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ZClick Москва
от 50 000 до 200 000 руб.
Protoplan Краснодар
от 80 000 до 150 000 руб.