Giải bài tập Turbo Pascal - Bài 7 trang 79

Dãy f là dãy Fibonacci nếu:
f[0]=0; f[1]=1; f[n]=f[n-1]+f[n-2] với n>= 2.
Viết chương trình nhập từ dãy bàn phím số nguyên dương n và đưa ra màn mình số hạng thứ n của dãy Fibonacci. Chương trình của bạn thực hiện được với giá trị lớn nhất là bao nhiêu?

Ý tưởng

Chúng ta sẽ sử dụng hai biến a và b thuộc kiểu dữ liệu Longint, a và b sẽ tương ứng với f[n-1]f[n-2] . Như vậy f[n]=f[n-1]+f[n-2] và chúng ta sẽ gán nó vào b còn giá trị b trước đó sẽ được gán vào a.

Chương trình

program fibonaci;
uses crt;
var a,b,c: longint;
    n,i  : integer;
begin
clrscr;
writeln('Nhap so N'); readln(n);
a:=1; b:=1; i:=1;
while (i<n) do
   begin
      c:=b;
      b:=a+b;
      a:=c;
      inc(i);
   end;
writeln('So hang thu ',n,' cua day Fibonaci la ',a);
readln;
end.

Comments