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
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".





