Bỏ qua đến nội dung
Bỏ qua điều hướng
Đăng nhập
MT.NET.VN

Viewbh De Quy Trong C2023 04 12 17 55 35

Tìm kiếm
Thuộc khóa học · baihoc_sub = 55

Lập trình C cơ bản ( Free )

Bài 1 / 1 trong khóa học.

Xem khóa học
100%
Bài trướcĐây là bài đầu tiên Bài sauĐây là bài cuối cùng
MT LEARNING · LESSON

Đệ quy trong C

1 / 3 ❮ ❯ Đệ quy trong C Các loại hàm do người dùng định nghĩa trong lập trình […]

Đệ quy trong C



Đệ quy trong C



Đệ quy trong C là quá trình trong đó một phương thức gọi lại chính nó một cách liên tiếp. Một phương thức trong C gọi lại chính nó được gọi là phương thức đệ quy.

Sử dụng đệ quy giúp code chặt chẽ hơn nhưng sẽ khó để hiểu hơn.

Cú pháp:

 kieu_tra_ve tenhamdequi() {     // your code     tenhamdequi(); /* goi lai chinh no */  }    int main() {     tenhamdequi();  }   

Ví dụ về đệ quy trong C

Dưới đây là các ví dụ về cách sử dụng đệ quy trong C.

Ví dụ 1: vòng lặp vô tận

 #include <stdio.h>    void p() {      printf("hellon");      p();  }    int main() {      p();      return 0;   }  

Kết quả:

hello  hello  ...  Lỗi tràn bộ nhớ...  

Ví dụ 2: vòng lặp có hạn

 #include <stdio.h>    static int count = 0;     void p() {      count++;      if (count <= 5) {          printf("hello %d n", count);          p();      }  }    int main() {      p();      return 0;   }  

Kết quả:

hello 1  hello 2  hello 3  hello 4  hello 5  

Ví dụ 3: tính giai thừa

 #include <stdio.h>    int factorial(int n) {      if (n == 1)          return 1;      else          return (n * factorial(n - 1));  }     int main() {      printf("Giai thua cua 5 la: %d", factorial(5));      return 0;  }  

Kết quả:

Giai thừa của 5 là: 120  

Chương trình trên hoạt động như sau:

 factorial(5)      factorial(4)         factorial(3)            factorial(2)               factorial(1)                  return 1               return 2*1 = 2            return 3*2 = 6         return 4*6 = 24      return 5*24 = 120  

Ví dụ 4: dẫy số Fibonacci

 #include <stdio.h>    static int n1 = 0, n2 = 1, n3 = 0;    void printFibo(int count) {      if (count > 0) {          n3 = n1 + n2;          n1 = n2;          n2 = n3;          printf(" %d", n3);          printFibo(count - 1);      }  }    int main() {      int count = 15;      printf("%d %d", n1, n2); // in 0 và 1      printFibo(count - 2); // n-2 vì 2 so 0 và 1 da duoc in ra        return 0;  }  

Kết quả:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377  








Source link

ĐÁNH GIÁ NỘI DUNG 0.0/5 0 lượt đánh giá
Bạn thấy nội dung này thế nào?
Mỗi trình duyệt/tài khoản được chấm lại sau 24 giờ.
Báo bài lỗiGiúp MT.Net.VN phát hiện nội dung cần kiểm tra
Báo lỗi được ghi vào hệ thống để Admin kiểm tra. Không dùng chức năng này để gửi hỗ trợ cá nhân.
Home Dịch vụ Khóa học CPanel