Не удаётся вычислить факториал числа 3 и выше - Prolog

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

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

Вот мой код в .pl
Когда вводишь в самой программе один из вариантов ниже, то ответ всегда правильный: fact(N,s(zero)).; fact(s(zero),s(zero)).; fact(N, (s(s(zero))).; fact(s(s(zero)), s(s(zero))). Но если уже вводишь для числа 3 и выше, например: fact(s(s(s(s(s(s(zero)))))), s(s(s(zero)))). то никакого ответа вообще нет, ни true, ни false, ни error, вообще ничего. Не могу понять в чём проблема.

Решение задачи: «Не удаётся вычислить факториал числа 3 и выше»

textual
Листинг программы
3 ?- fact(s(s(s(zero))), s(s(s(s(s(s(zero))))))).
true .

4 ?- fact(s(s(s(zero))), F).
F = s(s(s(s(s(s(zero)))))) .

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


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

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

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