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)
  • Вопрос задан
  • 281 просмотр
Решения вопроса 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: добавил функцию подсчёта суммы по прогрессии
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы