C Đệ quy (Hàm đệ quy)

Mục lục

Trong hướng dẫn này, bạn sẽ học cách viết các hàm đệ quy trong lập trình C với sự trợ giúp của một ví dụ.

Một hàm gọi chính nó được gọi là một hàm đệ quy. Và, kỹ thuật này được gọi là đệ quy.

Đệ quy hoạt động như thế nào?

 void recurse () (… recurse ();…) int main () (… recurse ();…)

Đệ quy tiếp tục cho đến khi đáp ứng một số điều kiện để ngăn chặn nó.

Để ngăn chặn đệ quy vô hạn, câu lệnh if… else (hoặc cách tiếp cận tương tự) có thể được sử dụng khi một nhánh thực hiện lệnh gọi đệ quy còn nhánh khác thì không.

Ví dụ: Tổng các số tự nhiên sử dụng đệ quy

 #include int sum(int n); int main() ( int number, result; printf("Enter a positive integer: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; ) int sum(int n) ( if (n != 0) // sum() function calls itself return n + sum(n-1); else return n; ) 

Đầu ra

 Nhập một số nguyên dương: 3 sum = 6

Ban đầu, hàm sum()được gọi từ main()hàm với số được truyền dưới dạng đối số.

Giả sử, giá trị của n bên trong sum()ban đầu là 3. Trong lần gọi hàm tiếp theo, 2 được chuyển cho sum()hàm. Quá trình này tiếp tục cho đến khi n bằng 0.

Khi n bằng 0, ifđiều kiện không thành công và elsephần được thực hiện trả về tổng các số nguyên cuối cùng cho main()hàm.

Ưu điểm và nhược điểm của đệ quy

Đệ quy làm cho chương trình trở nên thanh lịch. Tuy nhiên, nếu hiệu suất là quan trọng, hãy sử dụng vòng lặp thay vì đệ quy thường chậm hơn nhiều.

Điều đó đang được nói, đệ quy là một khái niệm quan trọng. Nó thường được sử dụng trong cấu trúc dữ liệu và thuật toán. Ví dụ, người ta thường sử dụng đệ quy trong các bài toán như duyệt cây.

thú vị bài viết...