递归函数求奶牛数量

有一种奶牛,4年生一只,以后每年生一只。现有一只刚出生的奶牛,问20年后有多少奶牛

思路:

奶牛数量
0 1
1 1
2 1
3 1
4 2
5 3
6 4
7 5
8 7
9 10
10 14
11 19
12 26

寻找规律发现:当年数量是一年前的数量加上四年前的数量,
即:
0,1,2,3奶牛数量为分f(n)=1;
年数大于4时f(n)=f(n-1)+f(n-4);
所以可以用函数递归计算某一年的奶牛数量。
如下:

#include
#include
int fab(int n)
{
     
	if (n == 0 || n == 1 || n == 2 || n == 3)
		return 1;
	else
		return fab(n - 1) + fab(n - 4);//当年数超过4年时,当年的数量是前一年的数量加上四年前的数量
}
int main()
{
     
	printf("%d",fab(20));
	system("pause");
	return 0;
}

你可能感兴趣的:(递归函数求奶牛数量)