Предикат, вычисляющий произведение четных чисел, не превышающих 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).
Объяснение кода листинга программы
- Задача кода - вычисление произведения четных чисел, не превышающих N.
- Предикат prod(integer,integer) принимает два целых числа в качестве аргументов.
- В первой ветке условия предиката prod(N,K) проверяется, является ли N четным числом. Если это так, то N1 присваивается значение N-2, т.е. N уменьшается на 2.
- Затем вызывается рекурсивный вызов предиката prod(N1,K1), который будет вычислять произведение четных чисел, не превышающих N1.
- Значение K1 присваивается произведению N и K1, т.е. K.
- Во второй ветке условия предиката prod(N,K) проверяется, является ли N нечетным числом. Если это так, то N1 присваивается значение N-1, т.е. N уменьшается на 1.
- Затем вызывается рекурсивный вызов предиката prod(N1,K), который будет вычислять произведение четных чисел, не превышающих N1.
- Значение K присваивается произведению N и K, т.е. K.
- В обоих ветках условия предиката prod(N,K) результатом является значение K.
- Факториал числа 2 вычисляется как произведение 2 и 2, т.е. 2*2=4.
- Факториал числа 4 вычисляется как произведение 4 и 2, т.е. 4*2=8.
- Факториал числа 6 вычисляется как произведение 6 и 2, т.е. 6*2=12.
- Факториал числа 8 вычисляется как произведение 8 и 2, т.е. 8*2=16.
- Факториал числа 10 вычисляется как произведение 10 и 2, т.е. 10*2=20.
- Факториал числа 12 вычисляется как произведение 12 и 2, т.е. 12*2=24.
- Факториал числа 14 вычисляется как произведение 14 и 2, т.е. 14*2=28.
- Факториал числа 16 вычисляется как произведение 16 и 2, т.е. 16*2=32.
- Факториал числа 18 вычисляется как произведение 18 и 2, т.е. 18*2=36.
- Факториал числа 20 вычисляется как произведение 20 и 2, т.е. 20*2=40.
- Факториал числа 22 вычисляется как произведение 22 и 2, т.е. 22*2=44.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д