10.04.2017

Số Fibonaci

Dãy số 1, 1, 2, 3, 5, 8, 13 … (số sau bằng tổng 2 số ngay trước nó) được gọi là số Fibonaci. Lập trình để đưa ra tất cả các số Fibonaci trong đoạn <n1,n2> bất kỳ. Có bao nhiêu số như vậy ?

                                                                 Giải

Var   n1,n2,i,dem: longint;
Function Fibonasi(n:Longint):Boolean;
   Var i,a,b:Longint; ok: Boolean;
   Begin
       If n=1 then ok:=True;
       a:=1; b:=1;
       For i:=2 to n do
           If i = a + b Then
               Begin
                   a:=b; b:=i; Ok:=True;
               End
           Else Ok:=False; Fibonasi:=Ok;
   End;
BEGIN
       Write(' Nhap so tu nhien n1, n2:  '); Readln(n1,n2);
       Write('=> Cac so Fibonasi trong doan [',n1,'-',n2,'] la:');
       For i:=n1 to n2 do
           If Fibonasi(i) Then
               Begin
                     Write(' ',i); dem:=dem+1;
               End;
       Write('   Vay co tat ca ',dem,' so Fibonasi trong doan [',n1,'-',n2,']'); Readln;
END.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét