Menu
GIỚI THIỆU
  • Đệ quy là quá trình lặp đi lặp lại một thành phần theo cùng một cách. sử dụng hàm đệ quy, lập trình viên cần phải cẩn thận định nghĩa điều kiện thoát khỏi hàm, phòng khi gặp phải vòng lặp vô hạn.

Tìm hiểu và sử dụng đệ quy trong ngôn ngữ C

Đệ quy là quá trình lặp đi lặp lại một thành phần theo cùng một cách. Dưới đây là một ví dụ minh họa tổng quát:

void tenhamdequi()
{
   tenhamdequi(); /* goi chinh no */
}

int main()
{
   tenhamdequi();
}

Ngôn ngữ lập trình C hỗ trợ đệ quy, ví dụ, một hàm có thể gọi đến chính nó. Nhưng khi bạn sử dụng hàm đệ quy, lập trình viên cần phải cẩn thận định nghĩa điều kiện thoát khỏi hàm, phòng khi gặp phải vòng lặp vô hạn.

Hàm lặp đệ quy rất hữu dụng để giải quyết các vấn đề trong toán học như tính toán giai thừa, tạo dãy Fibonacci, …

Tính toán giai thừa trong C

Dưới đây là một ví dụ, có thể tính toán giai thừa của một số cho trước sử dụng hàm đệ quy:

#include <stdio.h>

int tinhgiaithua(unsigned int i)
{
   if(i <= 1)
   {
      return 1;
   }
   return i * tinhgiaithua(i - 1);
}
int  main()
{
    int i = 10;
    printf("Gia tri giai thua cua %d la %d
", i, tinhgiaithua(i));
    
    printf("
===========================
");
    printf("Hoicode chuc cac ban hoc tot! 
");
    return 0;
}

Biên dịch và thực thi chương trình C trên.

 

Dãy Fibonacci trong C

Dưới đây là một ví dụ khác, tạo ra dãy Fabonacci cho một số cho trước sử dụng hàm đệ quy:

#include <stdio.h>

int day_fibonaci(int i)
{
   if(i == 0)
   {
      return 0;
   }
   if(i == 1)
   {
      return 1;
   }
   return day_fibonaci(i-1) + day_fibonaci(i-2);
}

int  main()
{
    int i;
    for (i = 0; i < 10; i++)
    {
       printf("%d	%n", day_fibonaci(i));
    }
    printf("
===========================
");
    printf("Hoicode chuc cac ban hoc tot! 
");
    return 0;
}

Chúc các bạn thành công!

Ghi nguồn hoicode.com khi đăng tải lại bài viết này.
Link: Tìm hiểu và sử dụng đệ quy trong ngôn ngữ C

Chia sẻ liên kết

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Facebook để được hỗ trợ nhanh nhất.

    Email của bạn sẽ được sử dụng với mục đích thông báo tin tuyển dụng mới hoặc các bài viết mới.

    captcha