Đệ quy dưới dạng thay thế vòng lặp
Chúng ta đã thấy rằng đệ quy là việc thực hiện lặp đi lặp lại các lệnh chứa trong một chương trình con. Và điều này, đến lượt nó, tương tự như công việc của chu kỳ. Có những ngôn ngữ lập trình hoàn toàn không có cấu trúc vòng lặp. Ví dụ: Prolog.
Hãy thử mô phỏng hoạt động của vòng lặp
for
.
Vòng lặp
for
chứa một biến đếm bước. Trong chương trình con đệ quy, một biến như vậy có thể được truyền dưới dạng tham số.
# Thủ tục LoopImitation() với hai tham số
# Tham số đầu tiên – bộ đếm bước, tham số thứ hai – tổng số bước
def LoopImitation(i, n):
print("Xin chào N", i) # Câu lệnh được lặp lại với mọi giá trị của i
nếu tôi < n: # Cho đến khi bộ đếm vòng lặp bằng giá trị n,
LoopImitation(i + 1, n) # gọi một thể hiện mới của thủ tục,
# với tham số i+1 (đi tới giá trị tiếp theo i)
Problem
Nghiên cứu chương trình dưới đây và sắp xếp vào chương trình chính một lời gọi thủ tục với các tham số
i = 1
,
n = 10
.