Professional Documents
Culture Documents
Hamdequi
Hamdequi
• Khi gọi hàm đệ qui đến chính nó thì mỗi lần gọi, thì máy tạo ra
một tập các biến cục bộ hoàn toàn mới độc lập với các tập
biến (cục bộ đã được tạo ra trong các lần gọi trước).
• Chú ý: có bao nhiêu lần gọi tới hàm thì cũng có bấy nhiêu lần
thoát ra khỏi hàm và cứ mỗi lần ra khỏi hàm thì tập các biến
cục bộ bị xóa.
• Sự tương ứng giữa các lần gọi tới hàm và các lần ra khỏi hàm
được thực hiện theo thứ tự ngược: nghĩa là lần ra đầu tiên
ứng với lần vào cuối cùng và lần ra khỏi hàm cuối cùng ứng
với lần đầu tiên gọi tới hàm.
• Hàm đệ qui dùng nhiều vùng nhớ trên ngăn xếp và có thể dẫn
đến tràn ngăn xếp. (nên dùng cho bài toán chỉ giải được bằng
đệ qui)
Một số loại đệ quy
int giaithua(int n)
{
int outn = 1;
for(int i = 1; i<n+1; i++)
outn = outn*i; // = 1.2.3..(n-2)(n-1)n
return outn;
}
Ví dụ 2 : tính giai thừa n! = n(n-1)..1 – Giải đệ quy
1! 2! n!