Đề bài

Dãy F là dãy Phi-bo-na-xi nếu :

F0=0, F1 = 1, Fn = Fn-1 + Fn-2 với N ≥ 2

Viết chương trình nhập từ bàn phím số nguyên dương N và đưa ra màn hình số hạng thứ N của dãy Phi-bo-na-xi. Chương trình của bạn thực hiện với giá trị lớn nhất của N là bao nhiêu ?

Lời giải chi tiết

Ta cần viết chương trình nhập vào từ bàn phím số nguyên dương N và đưa ra màn hình số hạng thứ N của dãy Phi-bô-nan-xi và đưa ra kết luận: với giá trị lớn nhất nào của N thì chương trình thực hiện được ?

Chương trình:

program bai7_chuong4;

uses crt;

var

N,i: word;

F,F1,F2: word;

Begin

clrscr;

repeat

writeln('Tim so hang thu N cua day Fibonaxi, Nĩ='));

readln(N);

if N<=2 then writeln(’Moi nhap lai !');

until N>2 F1:= 1 F2:= 2 for i:= 3 to N do

begin

F:= F1 + F2;

Fl:= F2;

F2:= F;

end;

writeln('So fibonaxi thu', N: 5, ' la ’, F: 10);

readln;

End.

Khi chạy chương trình, nếu nhập N < 2, chẳng hạn N = 1 thì trên chương trình đưa ra thông báo "Moi nhap lai". Còn khi nhập N >= 2, chẳng hạn N = 7 thì chương trình đưa ra kết quả: "So fibonaxi thu 7 la 21".

Kết quả chương trình đưa ra kết quả như hình 65 dưới đây:

Chương trình trên chỉ chạy được với N=1001 vì số Fi-bô-na-xi thứ 1001 là 65048, số số Fi-bô-na-xi thứ 1002 vượt quá phạm vi của kiểu word.

soanvan.me