Ошибка при выводе - Prolog
Формулировка задачи:
Здравствуйте, написал вот такую програмку по нахождению позиции числа n в последовательности Фибоначчи. На вход подается сумма четных чисел, на выходите необходимо получить позицию, но есть где-то ошибка не могу понять, как исправить.
Листинг программы
- fib(N,F):-fib(N,1,0,F).
- fib(N,Fib1,Fib2,F):-
- N>1,
- N1 is N-1,
- NewF is Fib1+Fib2,
- fib(N1,NewF,Fib1,F).
- fib(1,F,_,F).
- chet(X):-P is X mod 2,P ==0.
- sumchet(N,X):-sumchet(N,0,X).
- sumchet(N,Sum,X):-
- N>0,
- N1 is N-1,
- fib(N,F),
- (chet(F) -> Sum1 is Sum+F; Sum1 is Sum),
- sumchet(N1,Sum1,X).
- sumchet(0,Sum1,Sum1).
- check(Numb,N):-check(Numb,0,0,N).
- check(Numb,Numb_ans,Pos,N):-
- Numb>=Numb_ans,
- Pos1 is Pos+1,
- sumchet(Pos1,Numb_ans1),
- (Numb_ans1 == Numb -> write('Yes'); Num_ans2 is Numb_ans1),
- check(Numb,Num_ans2,Pos1,N).
- check(_,_,Pos1,Pos1).
Решение задачи: «Ошибка при выводе»
textual
Листинг программы
- check(Numb,N):-check(Numb,0,0,N).
- check(Numb,Numb,Pos,Pos).
- check(Numb,NumbPos,Pos,N):-
- Numb>=NumbPos,
- Pos1 is Pos+1,
- sumchet(Pos1,NumbPos1),
- check(Numb,NumbPos1,Pos1,N).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д