一般看到这种规律性问题首先想到的应该就是递归方法,按题目的案例,第一年是牛不生的,然后第二年生的牛在第五年开始生,后面就交给计算机推了,代码如下
#include
using namespace std;
int num(int n)
{
if(n1)
return 1;
if(n2)
return 2;
if(n3)
return 3;
if(n4)
return 4;
return num(n-1)+num(n-3);
}
int main()
{
int n;
while(cin>>n)
{
if(n==0)
break;
cout<<num(n)<<endl;
}
return 0;
}