Найти произведение элементов, у которых сумма цифр кратна 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.

Объяснение кода листинга программы

  1. Создается тип данных int, который представляет целые числа.
  2. Создается функция summa, которая принимает целое число и возвращает сумму его цифр.
  3. Создается функция fact, которая принимает целое число и возвращает его факториал.
  4. Создается переменная mult, которая будет хранить произведение чисел.
  5. Создается переменная arr, которая будет хранить массив целых чисел.
  6. Считывается размер массива n.
  7. Устанавливается длина массива arr равной n.
  8. Считывается массив arr.
  9. Инициализируется переменная mult единицей, так как произведение любого числа на ноль равно нулю.
  10. Запускается цикл for, который проходит по каждому элементу массива arr.
  11. В цикле считывается элемент массива arr[i].
  12. Вызывается функция summa для получения суммы цифр числа arr[i].
  13. Если остаток от деления суммы цифр на 4 равен нулю, то значение переменной mult умножается на arr[i].
  14. После завершения цикла for выводится произведение mult.
  15. Выводится факториал числа arr[low(arr)].

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы