Найти сумму всех цифр целочисленного массива. Например, если дан массив [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
Подписаться
2 комментариев
Новые
СтарыеПопулярные
Межтекстовые Отзывы
Посмотреть все комментарии
ALEKSANDR
8 месяцев назад
А в 1С как?
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
А в 1С как?
# это разве не подходит? одна строчка и всё)
def sum_list(list0: list) -> int:
return int(sum(list(int(j) for i in list0 for j in str(i))))