» » »

Для заданного N найдите наименьшее k, при котором fib(k)>N, где fib(k) – число Фибоначчи с номером k.

% Bilet19
% Patched by JamshyT 14.01.13
% Special for AISTd-31 :)
% To start type: jstart.
fib(1,1):-!.
fib(2,1):-!.
fib(N,F):-
           N1 is N-1, fib(N1,F1),
           N2 is N-2, fib(N2,F2),
           F is F1+F2.
          
predikat(N,X):-predikat(N,1,X).
predikat(1,K,0):-write('Net reshenii '),!.
predikat(N,K,X):- fib(K,X1),
                  K1 is K+1,
                  fib(K1,X2),
                  X1<N,X2>=N,
                  X=K,!.           
                       
predikat(N,K,X):-K1 is K+1, predikat(N,K1,X).
jstart:- write(' Vvedite I: '),nl,read(IJAM1),nl,
predikat(IJAM1,K,X),write(' K='),
write(K),nl,write(' X='),
write(X).


Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.