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:
əgər n < 10-dırsa, onda onun rəqəmlərinin cəmi -ə bərabərdir;
əks halda, rəqəminin rəqəmlərinin cəmini hesablamaq və ona rəqəminin son rəqəmi -u əlavə etmək.
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 % 10Proqramı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 = -nTam 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))