Ədədin rəqəmlərinin cəmi#1603

Ədədin rəqəmlərinin cəmi (Həll təhlili)

Giriş rəqəmi mənfi ola bilər. Bu halda, onun işarəsini dəyişəcəyik (rəqəmin və olan rəqəmlərinin cəmi eynidir).

Rekursiv əlaqəyə əsasən, rəqəm -in rəqəmlərinin cəmini hesablayan rekursiv funksiyasını icra edək:

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

Bu məsələni dövrlə də (rekursiya istifadə etmədən) həll etmək mümkündür.

Misal

Alqoritmin tətbiqi

sum funksiyası rəqəminin rəqəmlərinin cəmini hesablayır.

int sum(int n)
{
  if (n < 10) return n;
  return n % 10 + sum(n / 10);
}

Proqramın əsas hissəsi. -in giriş dəyərini oxuyun.

scanf("%d",&n);

Əgər rəqəmi mənfidirsə, onun işarəsini əksinə dəyişin.

if (n < 0) n = -n;

rəqəminin rəqəmlərinin cəmini hesablayın və çap edin.

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

Alqoritmin tətbiqi — iterasiya

-in giriş dəyərini oxuyun.

scanf("%d",&n);

Əgər rəqəmi mənfidirsə, onun işarəsini əksinə dəyişin.

if (n < 0) n = -n;

dəyişənində rəqəminin rəqəmlərinin cəmini tapın.

sum = 0;

rəqəminin rəqəmlərini keçin. -in hər bir rəqəmini cəminə əlavə edin.

while (n > 0)
{
  sum = sum + n % 10;
  n = n / 10;
}

Cavabı çap edin.

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

Java tətbiqi

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 tətbiqi

-in giriş dəyərini oxuyun.

n = int(input())

Əgər rəqəmi mənfidirsə, onun işarəsini əksinə dəyişin.

if n < 0: n = -n;

-in rəqəmləri üzərində iterasiya edin. -in hər bir rəqəmini cəminə əlavə edin.

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

Cavabı çap edin.

print(sum)

Python tətbiqi — funksiyası

sum funksiyası rəqəminin rəqəmlərinin cəmini hesablayır.

def sum(n):
  if n < 10: return n
  return sum(n // 10) + n % 10

Proqramın əsas hissəsi. -in giriş dəyərini oxuyun.

n = int(input())

Əgər rəqəmi mənfidirsə, onun işarəsini əksinə dəyişin.

if n < 0: n = -n;

rəqəminin rəqəmlərinin cəmini hesablayın və çap edin.

print(sum(n))

Python tətbiqi — string

-in giriş dəyərini oxuyun.

n = int(input())

Əgər rəqəmi mənfidirsə, onun işarəsini əksinə dəyişin.

if n < 0 : n = -n

Tam rəqəmini stringə çevirin: . Sonra bu stringdən rəqəmlərin siyahısını yaradın. Məsələn, əgər n = 123-dirsə, onda str(n) = "123" və list(map(int, str(n))) = [1, 2, 3]. map funksiyası stringinin hər bir simvoluna int funksiyasını tətbiq edir, hər bir simvolu tam dəyərə çevirir.

s = list(map(int,str(n)))

Cavabı çap edin, siyahı -dəki tam ədədlərin cəmi.

print(sum(s))