Розбір
Аналіз алгоритму
Вхідне число може бути від'ємним. У такому випадку змінимо його знак.
Реалізуємо рекурсивну функцію 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))