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