Câu 1: (7,0 điểm): FIBO
Nhà khoa học Fibonaci sau khi tim hiểu quy luật của loài thỏ đã phát hiện ra một dãy số đặc biệt và tên ông được lấy để đặt tên cho dãy số này. Khi nghiên cứu ông thấy rằng từ ba tháng tuổi trở đi , mỗi tháng, mỗi cặp thỏ sẽ sinh ra một cặp thỏ con. Từ đó số cặp thỏ tính theo từng tháng , từ tháng 1 trở đi sẽ tạo thành dãy 1, 1, 2, 3, 5, 8, 12, … Đây là dãy Fibonaci , hai số hạng đầu tiên bằng 1, các số hạng tiếp theo, từ số hạng thứ ba trở đi, bằng tổng hai số hạng đứng ngay trước nó. Nếu kí hiệu Fn là số thứ n của dãy Fibonaci, ta có:
F1 = F2 = 1, Fn = Fn-1 + Fn-2 , n ≥ 3.
Viết chương trình cho biết sau khoảng thời gian là bao nhiêu tháng thì ta có một đàn thỏ không ít hơn n cặp thỏ bố mẹ ở tháng đầu tiên, n là một số nguyên dương được nhập vào từ bàn phím. Giả sử không tính đến các nguyên nhân làm cho thỏ bị chết, như già yếu, bệnh tật hoặc bị con thú khác ăn thịt.
Ví dụ:
INPUT | OUTPUT |
N= 10 | So thang can nuoi la: 7 |
giup tui bai nay moi mntu nhien tim lai dc de nay pascal nha;)
program Fibonacci;
const
nmax = 1000007;
var
f: array[1..nmax] of Int64;
n: Int64;
i: Integer;
begin
ReadLn(n);
f[1] := 1;
f[2] := 1;
for i := 3 to 1000 do
begin
f[i] := f[i-1] + f[i-2];
if f[i] >= n then
begin
WriteLn('So thang can nuoi la: ', i);
Exit;
end;
end;
end.