Чему равна сумма цифр числа 123? А числа −123? Совпадают ли ваши результаты с результатами работы программы? Как можно объяснить и исправить ошибку в программе? Обсудите этот вопрос в группе.
Знак минус не является цифрой, поэтому у чисел
Для положительного x = программа из примера a = x // , b = x % , c = x % . Следовательно, s = , что совпадает с подсчётом вручную.
Для x = - в Python целочисленное деление // округляет частное вниз: a = -. Остаток при положительном делителе неотрицателен: -, поэтому b = . Аналогично -, значит, c = . Программа ошибочно выдаст s = -.
Прежде чем выделять цифры, заменим число его модулем функцией abs. Тогда отрицательный ввод превратится в положительное трёхзначное число:
x = abs(int(input('Введите число: ')))
a = x //
b = x % //
c = x %
s = a + b + c
print('s=', s)
Для обоих вводов и - после первой строки x = , поэтому программа верно выводит s= .
Сумма цифр обоих чисел равна x = abs(x).
