Câu 7 trang 79 SGK Tin học 11

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?


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?

Trả lời

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= / 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.