Произведение цифр натурального числа - 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 и состоит из следующих элементов:

  1. Предположение: dig_prod(N,N) :- N < 10, !. Это предположение гласит, что если число N меньше или равно 10, то произведение цифр этого числа также будет равно самому числу N.
  2. Правило: 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.

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

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