已知一头小母牛,出生三年之后,从第四年开始每年可以生一头小母牛,按此规律,第n年时有多少头母牛?
解析:
fac(n)代表第N年的头数,那么fac(n-1)就必然是N-1年时的头数,现在只需加上此年的增长量即可,但是因为年龄为1、2、3的牛都不会繁殖,而且每头牛一次生一头,所以他只要加上三年前的牛的数量即可(因为只有三年前的牛在此年才能生育),如果每年生两头就要加上2fac(n-3)了。
递归公式:
f(n)=1,0<n<4
f(n)=f(n-3)+f(n-1),n>3
public int fac(int n){ //n代表第几年
int cow = 0;
if(n==1||n==2||n==3) cow=1;
else if(n==4) cow=2;
else cow=fac(n-1)+fac(n-3);
return cow;
}