JavaScript is required

Thuật toán đệ qui dưới đây tính:

Function Test (n:integer):longint;

Begin

If n = 0 then Test:=1

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

End

A.

Tích số của n số n.

B.

Tích số của n số tự nhiên đầu tiên.

C.

Tích số của n-1 số n.

D.

Tích số của n-1 số tự nhiên đầu tiên

Trả lời:

Đáp án đúng: B


Đoạn code đưa ra một hàm đệ quy có tên là `Test` nhận một số nguyên `n` làm đầu vào. Hàm này tính toán giá trị dựa trên điều kiện: Nếu `n` bằng 0, nó trả về 1. Ngược lại, nó trả về `n` nhân với kết quả của việc gọi chính nó với tham số `n-1`. Để hiểu rõ hơn, ta xét một vài ví dụ: - Nếu `n = 0`, `Test(0)` trả về 1. - Nếu `n = 1`, `Test(1)` trả về `1 * Test(0) = 1 * 1 = 1`. - Nếu `n = 2`, `Test(2)` trả về `2 * Test(1) = 2 * 1 = 2`. - Nếu `n = 3`, `Test(3)` trả về `3 * Test(2) = 3 * 2 = 6`. - Nếu `n = 4`, `Test(4)` trả về `4 * Test(3) = 4 * 6 = 24`. Như vậy, hàm `Test(n)` thực chất tính giai thừa của `n` (n!). Giai thừa của `n` là tích của tất cả các số tự nhiên từ 1 đến `n`. Điều này tương ứng với "Tích số của n số tự nhiên đầu tiên".

Câu hỏi liên quan