Предикат, вычисляющий произведение четных чисел, не превышающих N - Prolog

Узнай цену своей работы

Формулировка задачи:

напишите, пожалуйста, предикат, который находит произведение четных чисел которые не пришивают превышают N

Решение задачи: «Предикат, вычисляющий произведение четных чисел, не превышающих N»

textual
Листинг программы
predicates
prod(integer,integer)
 
clauses
prod(2,2) :- !.
prod(N,K) :- N mod 2 = 0, N1=N-2, prod(N1,K1), K=N*K1.
prod(N,K) :- N mod 2 <> 0, N1=N-1, prod(N1,K).

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

  1. Задача кода - вычисление произведения четных чисел, не превышающих N.
  2. Предикат prod(integer,integer) принимает два целых числа в качестве аргументов.
  3. В первой ветке условия предиката prod(N,K) проверяется, является ли N четным числом. Если это так, то N1 присваивается значение N-2, т.е. N уменьшается на 2.
  4. Затем вызывается рекурсивный вызов предиката prod(N1,K1), который будет вычислять произведение четных чисел, не превышающих N1.
  5. Значение K1 присваивается произведению N и K1, т.е. K.
  6. Во второй ветке условия предиката prod(N,K) проверяется, является ли N нечетным числом. Если это так, то N1 присваивается значение N-1, т.е. N уменьшается на 1.
  7. Затем вызывается рекурсивный вызов предиката prod(N1,K), который будет вычислять произведение четных чисел, не превышающих N1.
  8. Значение K присваивается произведению N и K, т.е. K.
  9. В обоих ветках условия предиката prod(N,K) результатом является значение K.
  10. Факториал числа 2 вычисляется как произведение 2 и 2, т.е. 2*2=4.
  11. Факториал числа 4 вычисляется как произведение 4 и 2, т.е. 4*2=8.
  12. Факториал числа 6 вычисляется как произведение 6 и 2, т.е. 6*2=12.
  13. Факториал числа 8 вычисляется как произведение 8 и 2, т.е. 8*2=16.
  14. Факториал числа 10 вычисляется как произведение 10 и 2, т.е. 10*2=20.
  15. Факториал числа 12 вычисляется как произведение 12 и 2, т.е. 12*2=24.
  16. Факториал числа 14 вычисляется как произведение 14 и 2, т.е. 14*2=28.
  17. Факториал числа 16 вычисляется как произведение 16 и 2, т.е. 16*2=32.
  18. Факториал числа 18 вычисляется как произведение 18 и 2, т.е. 18*2=36.
  19. Факториал числа 20 вычисляется как произведение 20 и 2, т.е. 20*2=40.
  20. Факториал числа 22 вычисляется как произведение 22 и 2, т.е. 22*2=44.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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