Tải bản đầy đủ (.pdf) (2 trang)

Đệ quy | Đệ quy trong C | 64 bài học lập trình C hay nhất PDF de qui trong c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (142.91 KB, 2 trang )


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 



 

Đệ quy | Đệ quy trong 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(); }

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

int main() {

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\n", i, tinhgiaithua(i));

printf("\n===========================\n");
printf("VietJack chuc cac ban
hoc tot! \n");
return 0; }

Biên dịch và thực thi chương trình C trên sẽ cho kết quả sau:

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\t%n", day_fibonaci(i));
}
printf("\n===========================\n");
printf("VietJack chuc cac ban
hoc tot! \n");

return 0; }

Biên dịch và thực thi chương trình C trên sẽ cho kết quả sau:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 Trang
 chia
 sẻ
 các
 bài
 học
 online
 miễn
 phí
 


 



 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 


 


 


 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 Trang
 chia
 sẻ
 các
 bài
 học
 online
 miễn
 phí
 


 



×