Смотри картинку
Объяснение:
p = 23
s = 0
цикл выполняется пока р > 0
Действия в цикле:
s = s + p mod 10
p = p div 10
p = 23 s = 0 23 > 0 (да)
выполняем цикл
s = s + p mod 10 = 0 + 23 mod 10 = 0 + 3 = 3
p = p div 10 = 23 div 10 = 2
p = 2 s = 3 2 > 0 (да)
выполняем цикл
s = s + p mod 10 = 3 + 2 mod 10 = 3 + 2 = 5
p = p div 10 = 2 div 10 = 0
p = 0 s = 5 0 > 0 (нет)
не выполняем цикл
div - целочисленное деление
mod - остаток от целочисленного деления
2 / 2 = 1 целое + 0 остаток
2 div 2 = 1
2 mod 2 = 0
3 / 2 = 1 целое + 1 остаток
2 div 2 = 1
2 mod 2 = 1
Какой раз уже пишу, и не устану писать на далее.. Ребят уточняйте на каком языке программирования нужно написать. Это вам же на руку. Так как если вы не уточняете, вам потом всё равно придётся изменять под нужный вам язык.
Для примера напишу на С++
//Генерируем массив для n элементов и назовём его А
int sum = 0; //Создаём переменную сумма
for(int i = 0; i<n; i++){
if( (A[i]%8) == 0){
sum+=A[i];
}
}
//Запустили цикл, по всех элементах массива, и смотрим если число делиться на 8 нацело, тогда записываем его в суму, иначе, не делаем ничего
cout << "sum: " << sum; // Выводим сумму.
ответ: в 10-ичном 332