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

 

Найдите сумму цифр целого числа n.

 

Вход. Одно целое 32-х разрядное число n (число может быть отрицательным).

 

Выход. Выведите сумму цифр числа n.

 

Пример входа

Пример выхода

321

6

 

 

РЕШЕНИЕ

элементарная задача

 

Анализ алгоритма

Входное число может быть отрицательным. В таком случае изменим его знак (сумма цифр чисел -n и n одинаковая).

Реализуем рекурсивную функцию sum(n), вычисляющую сумму цифр числа n, согласно рекурсивной схеме:

sum(n) =

·        если n < 10, то сумма его цифр равна n;

·        иначе вычисляем сумму цифр числа n / 10 и прибавляем к нему последнюю цифру n % 10 числа n.

 

Задачу можно также решить при помощи цикла (без использования рекурсии).

 

Пример

 

 

Реализация алгоритма

Функция sum вычисляет сумму цифр числа n.

 

int sum(int n)

{

  if (n < 10) return n;

  return n % 10 + sum(n / 10);

}

 

Основная часть программы. Читаем входное число n.

 

scanf("%d",&n);

 

Если число n отрицательно, то меняем его знак на противоположный.

 

if (n < 0) n = -n;

 

Вычисляем и выводим сумму цифр числа n.

 

res = sum(n);

printf("%d\n",res);

 

Реализация алгоритма – итерация

Читаем входное число n.

 

scanf("%d",&n);

 

Если число n отрицательно, то меняем его знак на противоположный.

 

if (n < 0) n = -n;

 

В переменной sum находим сумму цифр числа n.

 

sum = 0;

 

Перебираем цифры числа n. Прибавляем каждую цифру числа n к сумме 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.

 
n = int(input())
 

Если число n отрицательно, то меняем его знак на противоположный.

 
if n < 0: n = -n;
 

Перебираем цифры числа n. Прибавляем каждую цифру числа n к сумме sum.

 
sum = 0
while n > 0:
  sum = sum + n % 10;
  n = n // 10;
 

Выводим ответ.

 
print(sum)

 

Python реализация – функция

Функция sum вычисляет сумму цифр числа n.

 

def sum(n):

  if n < 10: return n

  return sum(n // 10) + n % 10

 

Основная часть программы. Читаем входное число n.

 

n = int(input())

 

Если число n отрицательно, то меняем его знак на противоположный.

 

if n < 0: n = -n;

 

Вычисляем и выводим сумму цифр числа n.

 

print(sum(n))

 

Python реализация строка

Читаем входное число n.

 
n = int(input())
 

Если число n отрицательно, то меняем его знак на противоположный.

 
if n < 0 : n = -n
 
Преобразуем целое число n в строку: str(n). Далее из строки делаем список цифр. Например, если n = 123, то str(n) = “123” и list(map(int, str(n))) = [1, 2, 3]. Функция map применяет функцию int к каждому символу строки str(n), преобразуя каждый символ в целочисленное значение.
 
s = list(map(int,str(n)))
 
Выводим ответ – сумму чисел списка s.
 
print(sum(s))