Произведение цифр натурального числа - Prolog
Формулировка задачи:
Дано натуральное число N. Написать на SWI Prolog предикат, зависящий от N, который находит произведение цифр числа Nп.
Крайне рассчитываю на вас, так как самому справится с данными заданиями не представляется возможным.
Решение задачи: «Произведение цифр натурального числа»
textual
Листинг программы
predicates dig_prod(integer,integer) clauses dig_prod(N,N) :- N < 10, !. dig_prod(N,K) :- N1= N mod 10, N2= N div 10, dig_prod(N2,K1), K=K1*N1.
Объяснение кода листинга программы
Код представляет собой процедуру умножения натурального числа на сумму его цифр. Он написан на языке программирования Prolog и состоит из следующих элементов:
- Предположение:
dig_prod(N,N) :- N < 10, !.
Это предположение гласит, что если число N меньше или равно 10, то произведение цифр этого числа также будет равно самому числу N. - Правило:
dig_prod(N,K) :- N1= N mod 10, N2= N div 10, dig_prod(N2,K1), K=K1*N1.
Это правило гласит, что если число N больше 10, то его можно представить в виде суммы двух чисел: N1 (остаток от деления N на 10) и N2 (целая часть от деления N на 10). Затем, используя рекурсию, мы находим произведение цифр числа N2 и умножаем его на N1 (остаток от деления N на 10). Полученное значение K будет произведением цифр исходного числа N.