cách viết các hàm đệ quy trong lập trình C

C Đệ quy

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();
    ... .. ...
}

Làm việc của đệ quy

Đệ 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 và nhánh khác thì không.

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

#include <stdio.h>
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

Enter a positive integer: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.Tổng các số tự nhiên

Ư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.









Gõ tìm kiếm nhanh...