Числа Фибоначчи — последовательность целых чисел {Fn} , заданная с помощью соотношения F0=1, F1=1, Fn+1=Fn+Fn-1.
Отношение соседних чисел Фибоначчи по мере удаления от начала последовательности в пределе стремится к золотой пропорции. Последовательность чисел Фибоначчи начинается так:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233
__________
• Первый алгоритм
Предлагаю Вам воспользоваться одним из алгоритмов поиска чисел Фибоначчи.
Первый алгоритм учитывает количество элементов ряда, начиная с первого. Его удобно применять в задачах с точно известым количеством. Например, найти столько-то элементов, или найти такой-то элемент, или проверить, является ли такой-то элемент двузначным числом и т.д.
Справа от алгоритма представлена таблица тестирования цикла с параметром i.
ch:=0; {в переменную ch будет записываться очередное число Фибоначчи}
ch1:=1;
for i:=1 to n do {n - количество элементов ряда}
begin
ch2:=ch1;
ch1:=ch;
ch:=ch1+ch2;
write (ch:5)
end; |
i |
ch2 |
ch1 |
ch |
1 |
1 |
0 |
1 |
2 |
0 |
1 |
1 |
3 |
1 |
1 |
2 |
4 |
1 |
2 |
3 |
5 |
2 |
3 |
5 |
6 |
3 |
5 |
8 |
__________
• Второй алгоритм
Следующий алгоритм основан на сравнении произвольного числа Х с ближайшим к нему числом ряда Фибоначчи. И если они равны, следовательно Х – число Фибоначчи.
write('x=');readln(x);
ch1:=0; ch2:=1; ch:=1;
repeat
ch1:=ch2;
ch2:=ch-1;
ch:=ch1+ch2; write('ch1=':10,ch1,'ch2=':10,ch2,'ch=':10,ch);
inc(ch);
writeln;
until (x<ch) ;
if x = ch-1 then writeln( ' x - число Фибоначчи') |
|