Нужно найти сумму чисел в следующей последовательности: 2, 22, 222, 2222, ..., 2(n), - где, n - количество разрядов в последнем числе Для примера, n = 5 последнее число будет 22222, а сумма чисел в последовательности - 24690. n = 5 # кол-во разрядов last_num = 0 # итоговое число i = 1 # счетчик разрядов sum = 0 # 2 + 22 + 222 + 2222 + 22222 => 24690 while n > 0: last_num += 2 * i i *= 10 n -= 1 print(last_num) while last_num != 0: sum += last_num // 10 last_num //= 10 print(sum) Понимаю, что код кривой, так как только начал учит Python. Подскажите пожалуйста, как найти сумму чисел, поскольку условие sum += last_num // 10 "отсекает" первую двойку и по итогу сумма получается из чисел 2222 + 222 + 22 + 2 = 2468, вместо 22222 + 2222 + 222 + 22 + 2 = 24690.
Ответ Основная ошибка - излишняя сложность. У вас идея верная, но уберите две строки. Python призывает к лаконичности и ясности, начинайте решение с продумывания самого лаконичного и ясного варианта. Но ясность важнее лаконичности. n = 5 # кол-во разрядов last_num = 0 # итоговое число i = 1 # счетчик разрядов sum1 = 0 # 2 + 22 + 222 + 2222 + 22222 => 24690 while n > 0: last_num += 2 * i i *= 10 n -= 1 sum1 += last_num print(sum1)