Задачи / Числа / Сумма цифр числа
Сумма цифр числа: блок-схема и алгоритм
Последняя цифра числа — это остаток от деления на 10, а n div 10 отбрасывает её. Повторяем, пока число не кончится, складывая цифры.
Алгоритм по шагам
- Ввести n.
- Присвоить s = 0.
- Пока n > 0: s = s + n mod 10, n = n div 10.
- Вывести s.
Пример работы
| Вход | n = 4096 |
| Шаг 1 | s = 0 + 6 = 6, n = 409 |
| Шаг 2 | s = 6 + 9 = 15, n = 40 |
| Шаг 3 | s = 15 + 0 = 15, n = 4 |
| Шаг 4 | s = 15 + 4 = 19, n = 0 |
| Результат | 19 |
Решение на Python
n = int(input())
s = 0
while n > 0:
s += n % 10
n //= 10
print(s)
Решение на Pascal
var n, s: integer;
begin
readln(n);
s := 0;
while n > 0 do
begin
s := s + n mod 10;
n := n div 10;
end;
writeln(s);
end.
Код блок-схемы
Схема выше нарисована по этому псевдокоду. Скопируйте его в редактор блок-схем или нажмите «Открыть блок-схему в редакторе».
блок-схема: Сумма цифр числа
начало
ввод n
s = 0
пока n > 0
s = s + n mod 10
n = n div 10
вывод s
конец
Сложность
O(количество цифр) = O(log n). Так же считают количество цифр (k = k + 1) или переворачивают число.
Частые ошибки
- Обычное деление / вместо целочисленного: в Python n / 10 даёт дробь и цикл не закончится правильно.
- Отрицательное число: сначала возьмите модуль.
- Перепутать порядок: если сначала разделить n, последняя цифра потеряется.
Похожие задачи
- Проверка числа на простотуЧисло простое, если у него ровно два делителя: 1 и само число.
- НОД двух чисел: алгоритм ЕвклидаНОД(a, b) не меняется, если большее число заменить остатком от деления на меньшее: НОД(a, b) = НОД(b, a mod b).
- Факториал числаn! = 1 · 2 · 3 · … · n.
- Числа ФибоначчиКаждое число Фибоначчи — сумма двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13… Храним только два последних числа и на каждом шаге сдвигаем их вперёд..
- Перевод числа в двоичную системуДелим число на 2 и записываем остатки: они и есть двоичные цифры, но в обратном порядке.
Обозначения фигур и синтаксис кода блок-схем — в справочнике: блок-схема по ГОСТ 19.701. Все задачи.