30/09/2018, 16:46

Lỗi trong bài tập đệ quy

Đệ quy với công thức f(0)=0 , f(1)=1 như sau : f(i)=f(i-1)+2*f(i-2)

# include <stdio.h>
# include <conio.h>
float dequy(int a)
{
	if (a == 1)
		return 1;
	else
		return dequy(a-1) + 2 * dequy(a-2);	
}

void main()
{
	int n;
	printf("Nhap vao n:");
	scanf_s("%d", &n);
	float s = dequy(n);
	printf("bieu thuc de quy cua n la f(n)=f(n-1)+2*(f(n-2) bang : %f",s);
	getchar();
}

Cho e hói nó bị lỗi gì được không?

Minh Hoàng viết 18:55 ngày 30/09/2018
# include <stdio.h>
# include <conio.h>
float dequy(int a)
{
	if (a == 1)
		return 1;
	if (a == 0)   //thieu phan neo
		return 0;

	return dequy(a-1) + 2 * dequy(a-2);	
}

int main()
{
	int n;
	//printf("Nhap vao n:");
	//scanf_s("%d", &n);
	float s = dequy(2);
	printf("bieu thuc de quy cua n la f(n)=f(n-1)+2*(f(n-2) bang : %f",s);
	getchar();
	return 0;
}

bạn thiếu phần neo f(0)=0 nhé

Gió viết 18:51 ngày 30/09/2018

Bài này có công thức rồi mà: F(n) = (2^n - (-1)^n) / 3

Bài liên quan
0