Thuật toán dưới đây tính:
Function Test (n: Integer): Integer;
Var f1, f2, fn: Integer;
Begin
i:=2;
While i<=n do
Begin
fn := f1 + f2; f1:=f2; f2:=fn;
i:=i+1;
End;
Test:= fn;
End;
Trả lời:
Đáp án đúng: B
Đoạn code trên tính số Fibonacci thứ n. Ta thấy rằng f1 và f2 được gán giá trị ban đầu ở đâu đó (trong đề bài gốc có lẽ có gán f1=0, f2=1, tuy nhiên trong đoạn code này không có nên ta tạm bỏ qua). Trong vòng lặp while, fn được tính bằng tổng của f1 và f2, sau đó f1 được gán bằng f2 và f2 được gán bằng fn. Quá trình này lặp lại cho đến khi i lớn hơn n. Do đó, đoạn code này tính số Fibonacci thứ n.