Найти произведение элементов, у которых сумма цифр кратна 4 (N) - Turbo Pascal
Формулировка задачи:
Доброе время суток! Хотелось бы получить помощь в следующей задаче:
Пользователь вводит размерность и элементы одномерного массива натуральных чисел. Найти произведение элементов, у которых сумма цифр кратна 4 и факториал первого элемента массива. Вспомогательный алгоритм оформите в виде рекурсивной процедуры или функции в отдельный модуль.
А именно с задачей "Найти произведение элементов, у которых сумма цифр кратна 4".
Если кто-то поможет, то буду очень благодарен за Вашу помощь.
Не хочет происходить умножение
Решение задачи: «Найти произведение элементов, у которых сумма цифр кратна 4 (N)»
textual
Листинг программы
type int = integer; long = int64; uint = word; function summa(a:int):uint; //Сумма цифр числа begin if (a = 0) then summa:= 0 else summa:= a mod 10 + summa(a div 10); end; function fact(n:int):int; //Факториал begin if (n = 2) then fact:= n else fact:= n * fact(n - 1); end; var mult:long; //На всякий случай int64 arr:array of int; n, i:uint; begin writeln('Введите размер массива:'); read(n); setlength(arr, n); writeln('Введите массив:'); mult:= 1; //И не 0, а 1, иначе получите в любом случае 0, т.к. будете умножать на 0! for i:= low(arr) to high(arr) do //Здесь low можно заменить на 0, а high на n - 1 begin read(arr[i]); if (summa(arr[i]) mod 4 = 0) then mult:= mult * arr[i]; end; writeln('Произведение: ', mult); writeln('Факториал: ', fact(arr[low(arr)])); end.
Объяснение кода листинга программы
- Создается тип данных
int
, который представляет целые числа. - Создается функция
summa
, которая принимает целое число и возвращает сумму его цифр. - Создается функция
fact
, которая принимает целое число и возвращает его факториал. - Создается переменная
mult
, которая будет хранить произведение чисел. - Создается переменная
arr
, которая будет хранить массив целых чисел. - Считывается размер массива
n
. - Устанавливается длина массива
arr
равнойn
. - Считывается массив
arr
. - Инициализируется переменная
mult
единицей, так как произведение любого числа на ноль равно нулю. - Запускается цикл
for
, который проходит по каждому элементу массиваarr
. - В цикле считывается элемент массива
arr[i]
. - Вызывается функция
summa
для получения суммы цифр числаarr[i]
. - Если остаток от деления суммы цифр на 4 равен нулю, то значение переменной
mult
умножается наarr[i]
. - После завершения цикла
for
выводится произведениеmult
. - Выводится факториал числа
arr[low(arr)]
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д