Блог репетитора по информатике

Цифры в ряд

Сегодня мы рассмотрим стандартный алгоритм обработки цифр числа, для этого мы разберем самую простую задачу: Дано натуральное число, найти сумму цифр этого числа.

Что нам дано по условию задачи? С клавиатуры вводится целое положительное число больше нуля. Об этом нам стало понятно из строчки "Дано натуральное число". Количество разрядов в числе нам за ранее не известно.  

Рассуждаем дальше. Как получить цифру числа? И здесь мы должны вспомнить две операции, которые обязательно есть в любом языке программирования: целочисленное деление (div, /, //) и остаток от деления (mod, %). Операция "mod 10"  - получает младший разряд числа, а " div 10" - отбрасывает младший разряд.

Значит в алгоритме мы должны организовать цикл, в котором мы будем получать текущий младший разряд числа, затем довалять его в сумму и отрбрасывать его для того, чтобы на следующей итерации работать с более старшим разрядом. 

Так как мы не знаем заранее сколько будет разрядов в числе, значит цикл for (цикл с известным числом повторений) мы использовать не можем. Поэтому берем цикл while (цикл  с неизвестным числом повторений). 

Какое условие нужно записать для работы цикла? Здесь лучше рассуждать от противоположного: когда цикл должен законичить работу? Цикл должен закончить работу, когда в рассматриваемом числе не останется цифр (число станет равно 0). Почему это произойдет? В цикле последней операцией будет операция отбрасывание младшего разряда, а значит мы рано или поздно отбросим все раздряды и получим ноль.

Сделаем вывод, что цикл должен закончится когда введенное число станет равно нулю, а работать цикл должен кода данное число ещё больше ноля (цифры есть).

И еще один вопрос: как подсчитать сумму цифр? Для этого используем формулу накопления. Новое значение переменной равно старому значеню (то, что в ней было до этой операции) плюс новый элемент (в данном случае текущая цифра числа). Но здесь нужно помнить, что переменную, в которую мы записываем сумму, нужно до цикла инициализировать, то есть занести начальное значение (обычно это ноль).

Алгоритм представлне на рисунке.

алгоритм Сумма цифр числа

Ниже представлены алгритмы на трех языках

 

 

Пишите и подписывайтесь на мой канал в "Репетитор по информатике Анна Воробьева"