Число може бути від'ємним. У такому випадку змінимо його знак (сума цифр чисел та однакова).
Давайте реалізуємо рекурсивну функцію , яка обчислює суму цифр числа , за рекурсивним відношенням:
якщо n < 10, то сума його цифр дорівнює ;
в іншому випадку обчислимо суму цифр числа та додамо до неї останню цифру числа .
Ця задача також може бути розв'язана за допомогою циклу (без використання рекурсії).
Приклад
Імплементація алгоритму
Функція 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 = 0;Перебираємо цифри числа . Додаємо кожну цифру до суми .
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Перетворюємо ціле число в рядок: . Потім із рядка створюємо список цифр. Наприклад, якщо n = 123, то str(n) = "123" і list(map(int, str(n))) = [1, 2, 3]. Функція map застосовує функцію int до кожного символу рядка , перетворюючи кожен символ на ціле значення.
s = list(map(int,str(n)))Друкуємо відповідь, суму чисел у списку .
print(sum(s))