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):longint;

Begin

If n = 0 then Test:=1 

Else Test:= n * Test(n-1);

End; 

A.

Test(4) = 24

B.

Test(2) = 1

C.

Test(3) = 9

D.

Test(5) = 20

Trả lời:

Đáp án đúng: A


Đề bài yêu cầu xác định kết quả đúng của hàm đệ quy `Test(n)`. Hàm này tính giai thừa của n. Ta sẽ kiểm tra từng đáp án: * **A. Test(4) = 24:** * Test(4) = 4 * Test(3) * Test(3) = 3 * Test(2) * Test(2) = 2 * Test(1) * Test(1) = 1 * Test(0) * Test(0) = 1 * Suy ra: Test(1) = 1, Test(2) = 2, Test(3) = 6, Test(4) = 24. Vậy đáp án A đúng. * **B. Test(2) = 1:** Như đã tính ở trên, Test(2) = 2, nên đáp án này sai. * **C. Test(3) = 9:** Như đã tính ở trên, Test(3) = 6, nên đáp án này sai. * **D. Test(5) = 20:** * Test(5) = 5 * Test(4) * Test(4) = 24 (đã tính ở trên) * Suy ra: Test(5) = 5 * 24 = 120, nên đáp án này sai. Vậy đáp án đúng là A.

Câu hỏi liên quan