JavaScript is required

Thuật toán đệ quy dưới đây:

Function dequy(a: real; n:integer);

Begin 

If n = 0 then dequy:=1

Else dequy:= a* dequy (a,n-1);

End;

A.

Tính an

B.

Tính (n-1)a

C.

Tính an-1

D.

Tính na

Trả lời:

Đáp án đúng: A


Đoạn code trên định nghĩa một hàm đệ quy `dequy(a, n)` với `a` là một số thực và `n` là một số nguyên. Hàm này tính lũy thừa bậc `n` của `a`. Giải thích chi tiết: - Trường hợp cơ sở (base case): Nếu `n = 0`, hàm trả về 1 (vì a^0 = 1). - Trường hợp đệ quy (recursive case): Nếu `n > 0`, hàm trả về `a * dequy(a, n-1)`. Điều này có nghĩa là hàm nhân `a` với kết quả của việc gọi chính nó với số mũ giảm đi 1. Quá trình này lặp lại cho đến khi `n = 0`. Ví dụ: - `dequy(2, 3)` sẽ tính 2 * dequy(2, 2) - `dequy(2, 2)` sẽ tính 2 * dequy(2, 1) - `dequy(2, 1)` sẽ tính 2 * dequy(2, 0) - `dequy(2, 0)` sẽ trả về 1 Do đó, `dequy(2, 3)` = 2 * 2 * 2 * 1 = 8, tức là 2^3. Vậy, hàm này tính a^n.

Câu hỏi liên quan