Для получения следующего числа Фибоначчи необходимо иметь два предыдущих значения. В нашей программе это b и a. В начале они равны 1 (строка 7). Цикл мы начинаем с 3-го числа и продолжаем до n (строка 8). Получение новой пары чисел Фибоначчи – нового значения и предыдущего значения осуществляется в строках 10, 11.
Как и в случае с задачей 22 (вычисления факториала) здесь интересен рост значений чисел этой последовательности. Так при объявлении b,a:integer; (строка 3) правильный результат мы получим до n=46 (включительно). При объявлении b,a:int64; - до n=92. Проверьте границы верных значений при объявлениях b,a:double; b,a:extended; Заметим, что 500-ое число Фибоначчи имеет 105 цифр, а 1000-ое – 209 цифр.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Program A2_24; Var b,a:integer; n,i:integer; BEGIN readln(n); b:=1; a:=1; for i:=3 to n
do begin b:=b+a; a:=b-a; end; writeln(b); readln; END. |
//Program A2.24; #include <iostream>
using namespace std;
int main() { int
b=1,a=1; int n,i;
cin>>n;
for(i=3;i<=n;i++) { b=b+a; a=b-a; }
cout<<b<<endl; return
0; } |