Номер §5.3 ПМ 2

ГДЗ по информатике 8 класс, Босова 2023, страница 225

§. ПМ Сумма цифр трёхзначного числа

Чему равна сумма цифр числа 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).

Помогло?

Нет твоего задания?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото