Alqoritm Analizi
Daxil edilən ədəd mənfi ola bilər. Bu halda, onun işarəsini dəyişirik.
sum(n)
rekursiv funksiyasını həyata keçiririk, bu funksiya ədədinin rəqəmlərinin cəmini rekursiv sxemə uyğun olaraq hesablayır:
$sum(n) = \begin{cases}n & \text{əgər } n < 10 \n % 10 + sum(\left\lfloor\frac{n}{10}\right\rfloor) & \text{əks halda}\end{cases}$
Bu tapşırıq dövr (rekursiya olmadan) istifadə edərək də həll edilə bilər.
Alqoritm Tətbiqi
sum
funksiyası ədədinin 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. Daxil edilən ədədi oxuyuruq.
scanf("%d",&n);
Əgər ədəd mənfidirsə, onda onun işarəsini əksinə dəyişirik.
if (n < 0) n = -n;
ədədinin rəqəmlərinin cəmini hesablayıb çap edirik.
res = sum(n); printf("%d\n",res);
Alqoritm Tətbiqi – İterasiya
Daxil edilən ədədi oxuyuruq.
scanf("%d",&n);
Əgər ədəd mənfidirsə, onda onun işarəsini əksinə dəyişirik.
if (n < 0) n = -n;
sum
dəyişənində ədədinin rəqəmlərinin cəmini tapırıq.
sum = 0;
ədədinin rəqəmləri üzərindən iterasiya edirik. ədədinin hər rəqəmini sum
cəminə əlavə edirik.
while(n > 0) { sum = sum + n % 10; n = n / 10; }
Cavabı çap edirik.
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
Daxil edilən ədədi oxuyuruq.
n = int(input())
Əgər ədəd mənfidirsə, onda onun işarəsini əksinə dəyişirik.
if n < 0: n = -n
ədədinin rəqəmləri üzərindən iterasiya edirik. ədədinin hər rəqəmini sum
cəminə əlavə edirik.
sum = 0 while n > 0: sum = sum + n % 10 n = n // 10
Cavabı çap edirik.
print(sum)
Python Tətbiqi – Funksiya
sum
funksiyası ədədinin 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. Daxil edilən ədədi oxuyuruq.
n = int(input())
Əgər ədəd mənfidirsə, onda onun işarəsini əksinə dəyişirik.
if n < 0: n = -n
ədədinin rəqəmlərinin cəmini hesablayıb çap edirik.
print(sum(n))
Python Tətbiqi – Sətir
Daxil edilən ədədi oxuyuruq.
n = int(input())
Əgər ədəd mənfidirsə, onda onun işarəsini əksinə dəyişirik.
if n < 0: n = -n
Tam ədədi -i sətrə çeviririk: str(n)
. Sonra sətrdən rəqəmlərin siyahısını yaradırıq. Məsələn, olarsa, str(n) = “123”
və list(map(int, str(n))) = [1, 2, 3]
olur. map
funksiyası int
funksiyasını str(n)
sətrinin hər simvoluna tətbiq edərək, hər simvolu tam ədəd dəyərinə çevirir.
s = list(map(int, str(n)))
Cavabı çap edirik – s
siyahısındakı ədədlərin cəmini.
print(sum(s))