JavaScript is required

Kết quả nào đúng trong số những kết quả dưới đây sau khi thực hiện thuật toán:

Function Test (n: Integer): Integer;

Var f1, f2, fn: Integer;

Begin

f1=1;

f2=1;

i:=3;

While i<=n do

Begin

fn := f1 + f2; f1:=f2; f2:=fn;

i:=i+1;

End;

Test:= fn;

End;

A.

Test(6) = 5

B.

Test(5) = 3

C.

Test(7) = 13

D.

Test(4) = 1

Trả lời:

Đáp án đúng: C


Thuật toán này tính số Fibonacci thứ n. Ta sẽ kiểm tra từng đáp án: A. Test(6): f1 = 1, f2 = 1, i = 3 i = 3: fn = 1 + 1 = 2, f1 = 1, f2 = 2 i = 4: fn = 1 + 2 = 3, f1 = 2, f2 = 3 i = 5: fn = 2 + 3 = 5, f1 = 3, f2 = 5 i = 6: fn = 3 + 5 = 8, f1 = 5, f2 = 8 Test(6) = 8. Vậy đáp án A sai. B. Test(5): f1 = 1, f2 = 1, i = 3 i = 3: fn = 1 + 1 = 2, f1 = 1, f2 = 2 i = 4: fn = 1 + 2 = 3, f1 = 2, f2 = 3 i = 5: fn = 2 + 3 = 5, f1 = 3, f2 = 5 Test(5) = 5. Vậy đáp án B sai. C. Test(7): f1 = 1, f2 = 1, i = 3 i = 3: fn = 1 + 1 = 2, f1 = 1, f2 = 2 i = 4: fn = 1 + 2 = 3, f1 = 2, f2 = 3 i = 5: fn = 2 + 3 = 5, f1 = 3, f2 = 5 i = 6: fn = 3 + 5 = 8, f1 = 5, f2 = 8 i = 7: fn = 5 + 8 = 13, f1 = 8, f2 = 13 Test(7) = 13. Vậy đáp án C đúng. D. Test(4): f1 = 1, f2 = 1, i = 3 i = 3: fn = 1 + 1 = 2, f1 = 1, f2 = 2 i = 4: fn = 1 + 2 = 3, f1 = 2, f2 = 3 Test(4) = 3. Vậy đáp án D sai.

Câu hỏi liên quan