HDOJ 2018 母牛的故事
该题大意如下,成熟的母牛每年年初会生下一头年轻的,而年轻的在第四个年头会变成成熟的。
我们不妨设F(N)表示第n年母牛的数量。(过了年初)
这些牛中有 n-1 年的总牛数 + 新生的牛叔;
而新生的牛的数量等于第n年成熟的牛的数量
由于牛 第四年成熟;
故第n年成熟的牛的数量 等于 第n-3年成熟的牛的数量+ 第n-3年初所生的新生牛的数量(既等于F(n-3))
故得到递推式
F(N) = F(N-1)+F(N-3);
AC代码如下`
#include <iostream>
using namespace std;
int cowcount(int n){
if(n<5){
return n;
}
else{
return cowcount(n-1)+cowcount(n-3);
}
}
int main()
{
int n;
while(cin>>n){
if(n == 0){
return 0;
}
cout<<cowcount(n)<<endl;
}
}