Сума цифр числа#1603

Сума цифр числа (Розбір)

Число може бути від'ємним. У такому випадку змінимо його знак (сума цифр чисел та однакова).

Давайте реалізуємо рекурсивну функцію , яка обчислює суму цифр числа , за рекурсивним відношенням:

sum(n) = \begin{cases} sum(n / 10) + n \% 10, n \ge 10 \\ n, n < 10 \end{cases}

Ця задача також може бути розв'язана за допомогою циклу (без використання рекурсії).

Приклад

Імплементація алгоритму

Функція 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))