Bài toán. Dãy Fibonacci có hai phần tử đầu là 1, 1. Các phần tử sau bằng tổng hai phần tử đứng ngay trước nó: 1, 1, 2, 3, 5, 8, 13, 21, …
Viết chương trình in ra dãy Fibonacci có phần tử lớn nhất nhỏ hơn n?
Thuật toán:
– Cần hai biến F_1 và F có giá trị đầu là 1, 1.
– Thực hiện lặp cho đến khi F >= n.
– Do yêu cầu chỉ in các số bé hơn n nên khi in cần thêm một lệnh kiểm tra.
Code tham khảo:
Program Fibonacci;
Var n, F_2,F_1, F: Longint;
Begin
Write('Nhap n: ');Readln(n);
F_1:=1; F_2:=1;
Write(F_2,';',F_1,';');
Repeat
F:=F_2+F_1;
if F< n then Write(F,';');
F_2:=F_1; F_1:=F;
Until F>n;
Readln;
End.