Đề 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.