Сумма цифр массива

ЗАДАЧА
Найти сумму всех цифр целочисленного массива. Например, если дан массив [12, 104, 81], то сумма всех его цифр будет равна 1 + 2 + 1 + 0 + 4 + 8 + 1 = 17.

Каждое элемент-число массива следует разбить на цифры. Сделать это можно с помощью последовательного нахождения остатка от деления числа на 10 нацело, после чего само число делится нацело на десять (чтобы избавиться от последней уже учтенной цифры). Это делается в цикле while до тех пор, пока исходное число не обнулится. Каждую извлеченную цифру следует добавить к переменной, содержащей общую сумму. Ей присваивается нуль до вхождения в цикл перебора элементов массива.

Перед тем как последовательно делить в цикле очередное число массива необходимо присвоить его другой переменной (в примерах ниже num), иначе все элементы массива обнулятся, хотя сумма цифр исходного массива будет посчитана.

В приведенных примерах решения задачи на языках программирования заполнение массивов и подсчет сумм выполняются в одном цикле.

Pascal


сумма чисел массива паскаль

const
N = 4;
var
arr: array[1..N] of integer;
i: byte;
sum, num: integer;
begin
randomize;
sum := 0;
for i := 1 to N do begin
arr[i] := random(20);
write (arr[i]:5);
num := arr[i];
while num > 0 do begin
sum := sum + num mod 10;
num := num div 10;
end;
end;
writeln;
writeln(sum);
end.



1 16 15 4
18

Язык Си


#include
#define N 4

main() {
int a[N], i, sum, num;
srand(time(NULL));
sum = 0;
for (i=0; i a[i] = rand()%20;
printf("%3d", a[i]);
num = a[i];
while (num > 0) {
sum += num%10;
num /= 10;
}
}
printf("\n%d\n", sum);
}



3 16 12 1
14

Python


сумма чисел в массиве python

from random import random

N = 5
a = [0]*N
summa = 0
for i in range(N):
a[i] = int(random()*20)
print('%3d' % a[i], end='')
b = a[i]
while b > 0:
summa += b%10
b //= 10
print()
print (summa)



4 19 11 3 0
19

КуМир


алг сумма цифр массива
нач
цел N = 4, sum = 0, i, d
цел таб a[1:N]
нц для i от 1 до N
a[i] := irand(0,20)
вывод a[i]:3
d := a[i]
нц пока d > 0
sum := sum + mod(d,10)
d := div(d,10)
кц
кц
вывод нс
вывод sum
кон



4 10 6 20
13

Basic-256


N = 5
dim arr(N)
sum = 0
for i=0 to N-1
arr[i] = int(rand() * 20)
print arr[i] + " ";
num = arr[i]
while num > 0
sum = sum + num % 10
num = num \ 10
endwhile
next i
print
print sum



8 6 16 15 6
33

Подписаться
Уведомить о
guest

2 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
ALEKSANDR
ALEKSANDR
1 месяц назад

А в 1С как?

Aluminiu
Aluminiu
2 лет назад

# это разве не подходит? одна строчка и всё)
def sum_list(list0: list) -> int:
return int(sum(list(int(j) for i in list0 for j in str(i))))

Pascal

сумма чисел массива паскаль

const
N = 4;
var
arr: array[1..N] of integer;
i: byte;
sum, num: integer;
begin
randomize;
sum := 0;
for i := 1 to N do begin
arr[i] := random(20);
write (arr[i]:5);
num := arr[i];
while num > 0 do begin
sum := sum + num mod 10;
num := num div 10;
end;
end;
writeln;
writeln(sum);
end.



1 16 15 4
18
Язык Си

#include
#define N 4

main() {
int a[N], i, sum, num;
srand(time(NULL));
sum = 0;
for (i=0; i 0) {
sum += num%10;
num /= 10;
}
}
printf("\n%d\n", sum);
}



3 16 12 1
14
Python

сумма чисел в массиве python

from random import random

N = 5
a = [0]*N
summa = 0
for i in range(N):
a[i] = int(random()*20)
print('%3d' % a[i], end='')
b = a[i]
while b > 0:
summa += b%10
b //= 10
print()
print (summa)



4 19 11 3 0
19
КуМир

алг сумма цифр массива
нач
цел N = 4, sum = 0, i, d
цел таб a[1:N]
нц для i от 1 до N
a[i] := irand(0,20)
вывод a[i]:3
d := a[i]
нц пока d > 0
sum := sum + mod(d,10)
d := div(d,10)
кц
кц
вывод нс
вывод sum
кон



4 10 6 20
13
Basic-256

N = 5
dim arr(N)
sum = 0
for i=0 to N-1
arr[i] = int(rand() * 20)
print arr[i] + " ";
num = arr[i]
while num > 0
sum = sum + num % 10
num = num \ 10
endwhile
next i
print
print sum



8 6 16 15 6
33