- Đệ quy là kỹ thuật thực hiện lời gọi hàm. Kỹ thuật này cung cấp một cách để chia nhỏ các vấn đề phức tạp thành các vấn đề đơn giản dễ giải quyết hơn.
- Đệ quy có thể hơi khó hiểu. Cách tốt nhất để tìm ra cách thức hoạt động của nó là thử nghiệm với nó.
Cộng hai số với nhau thì dễ nhưng cộng một dãy số thì phức tạp hơn. Trong ví dụ sau, đệ quy được sử dụng để cộng một dãy số với nhau bằng cách chia nhỏ nó thành nhiệm vụ đơn giản là cộng hai số.
Khi sum()
hàm được gọi, nó sẽ thêm tham số k
vào tổng của tất cả các số nhỏ hơn k
và trả về kết quả. Khi k trở thành 0, hàm chỉ trả về 0. Khi chạy, chương trình thực hiện theo các bước sau:
10 + tổng(9) 10 + ( 9 + tổng(8) ) 10 + ( 9 + ( 8 + tổng(7) ) ) ... 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + tổng(0) 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 |
Vì hàm không tự gọi khi k = 0
nên chương trình dừng tại đó và trả về kết quả.
Khi sum()
hàm được gọi, nó sẽ thêm tham số k
vào tổng của tất cả các số nhỏ hơn k
và trả về kết quả. Khi k trở thành 0, hàm chỉ trả về 0. Khi chạy, chương trình thực hiện theo các bước sau:
10 + tổng(9) 10 + ( 9 + tổng(8) ) 10 + ( 9 + ( 8 + tổng(7) ) ) ... 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + tổng(0) 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 |
Vì hàm không tự gọi khi k = 0
nên chương trình dừng tại đó và trả về kết quả.