Как численно ограничить рекурсивный цикл? [Visual Prolog]
Формулировка задачи:
Делаю лабораторную работу, уже почти закончил, но не получается сделать так чтобы цикл остановился на заданном числе, вот что имеется:
после 106 он уходит дальше 107, 108 и т.д.
Кого интересует, задание лабораторной работы: "Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр"
Листинг программы
- domains
- i = integer
- int_lst = i*
- predicates
- prov(integer)
- procces(integer,int_lst)
- clauses
- prov(N):-
- (((N mod 10) - ((N div 10) mod 10)) * (((N div 10) mod 10) - (N div 100)) * ((N mod 10) - (N div 100))) >< 0.
- procces(106,[]).
- procces(N,Rez):-prov(N),
- N1 = N + 1,
- procces(N1,[N1|RezO]),
- Rez = [N|RezO].
- goal
- procces(103,R).
Решение задачи: «Как численно ограничить рекурсивный цикл? [Visual Prolog]»
textual
Листинг программы
- prov(N):-
- (((N mod 10) - ((N div 10) mod 10)) * (((N div 10) mod 10) - (N div 100)) * ((N mod 10) - (N div 100))) >< 0.
- procces(999,[]) :- !.
- procces(N, [N|Rest]) :-
- prov(N),
- !,
- N1 = N + 1,
- procces(N1, Rest).
- procces(N, Rest):-
- N1 = N + 1,
- procces(N1, Rest).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д