Разбор
Анализ алгоритма
Входное число может быть отрицательным. В таком случае изменим его знак.
Реализуем рекурсивную функцию sum(n)
, вычисляющую сумму цифр числа , согласно рекурсивной схеме:
если , то сумма его цифр равна ;
иначе вычисляем сумму цифр числа и прибавляем к нему последнюю цифру числа .
Задачу можно также решить при помощи цикла (без использования рекурсии).
Пример
Реализация алгоритма
Функция sum
вычисляет сумму цифр числа .
int sum(int n) { if (n < 10) return n; return n % 10 + sum(n / 10); }
Основная часть программы. Читаем входное число .
scanf("%d",&n);
Если число отрицательно, то меняем его знак на противоположный.
if (n < 0) n = -n;
Вычисляем и выводим сумму цифр числа .
res = sum(n); printf("%d\n",res);
Реализация алгоритма – итерация
Читаем входное число .
scanf("%d",&n);
Если число отрицательно, то меняем его знак на противоположный.
if (n < 0) n = -n;
В переменной sum
находим сумму цифр числа .
sum = 0;
Перебираем цифры числа . Прибавляем каждую цифру числа к сумме sum
.
while(n > 0) { sum = sum + n % 10; n = n / 10; }
Выводим ответ.
printf("%d\n",sum);
Java реализация
import java.util.*; public class Main { static int sum(int n) { if (n < 10) return n; return n % 10 + sum(n / 10); } public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); if (n < 0) n = -n; int res = sum(n); System.out.println(res); con.close(); } }
Python реализация
n = int(input()) if n < 0: n = -n sum = 0 while n > 0: sum = sum + n % 10 n = n // 10 print(sum)
Python реализация – функция
Функция sum
вычисляет сумму цифр числа .
def sum(n): if n < 10: return n return sum(n // 10) + n % 10 n = int(input()) if n < 0: n = -n print(sum(n))
Python реализация – строка
Читаем входное число .
n = int(input()) if n < 0: n = -n s = list(map(int, str(n))) print(sum(s))