RSSLập trình C - C++

Hàm đệ quy

Định nghĩa: Khi một hàm gọi tới chính nó người ta gọi đó là hàm đệ quy. Lý thuyết thì bao giờ cũng vu vơ trừu tượng bạn chạy các hàm sau và xem giải thích sẽ rõ hơn.

Định nghĩa: Khi một hàm gọi tới chính nó người ta gọi đó là hàm đệ quy. Lý thuyết thì bao giờ cũng vu vơ trừu tượng bạn chạy các hàm sau và xem giải thích sẽ rõ hơn.

Bài quen thuộc viết hàm UCLN của số n mà viết bằng đệ quy.
//UCLN tinh bang de qui

#include <stdio.h>
int UCLN(int a, int b)
{
	if(a == b)
		return a;
	else if(a>b)
		return UCLN(a-b, b);
	else
		return UCLN(a, b-a);
}
void main()
{
	int a,b;
	printf("\nNhap a: ");
	scanf("%d", &a);
	printf("\nNhap b: ");
	scanf("%d", &b);

	printf("\nUCLN la: %d", UCLN(a,b));
}
Tìm giá trị của dãy fibo f(n):

Cho biết:

  • f(n) = 0 khi n=0
  • f(n) = 1 khi n=1
  • f(n) = f(n-1) + f(n-2) khi n != 0, n!=1.
//fibo
#include <stdio.h>
int fibo(int n)
{
	if(n==0)
		return 0;
	else if(n==1)
		return 1;
	else
		return (fibo(n-1) + fibo(n-2));
}

void main()
{
	int n;
	printf("\nNhap n: ");
	scanf("%d", &n);

	printf("\nfibo %d: %d",n,fibo(n));
}

Về cơ bản thì khi làm đệ qui thông thường sẽ có if và else và kèm theo một số dữ kiện nữa, cũng k bít nói sao túm lại là phân tích có dạng f(n) = f(n-1) + biểu thức.
ví dụ: f(n)=1/2 + 3/4 + 5/6 + … + (2n+1)/(2n+2).
Phân tích:

Nếu n = 0 thì f(n)=1/2
Nếu n !=0 thì f(n)=f(n-1)+(2n+1)/(2n+2).
Thế thì mình chỉ cần đệ quy nó lên là xong.

Kết luận:
Ok, vậy là có một chút ký ức về đệ quy rùi, làm một số bài sau đây sẽ hỉu rõ hơn nha pà kon:

VN:F [1.9.22_1171]
Rating: 7.7/10 (7 votes cast)
Hàm đệ quy, 7.7 out of 10 based on 7 ratings

Tags:

Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để website ngày càng phát triển hơn. Xin cám ơn bạn!

Nếu là khách, bạn phải đăng ký tài khoản và kích hoạt tài khoản để bình luận được hiển thị ở đây.
Thông tin kích hoạt gửi đến mail của bạn.

Tin mới hơn

Tin cũ hơn

Lên trên đầu