我现在做的是第三专题编号为1013的试题,具体内容如下所示:
Problem M
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 92 Accepted Submission(s) : 53
2 4 5 0
2 4 6
一头母牛每年生一头小母牛,每头小母牛长到第四年的时候也能生一头小母牛,求第n年母牛的数量
解题思路:
利用递归,前四年比较好计算,但到了第五年,每年都有小母牛生出小母牛,得出递归公式:num(a) = num(a-1) + num(a-3),接下来就好计算了。
编写代码:
#include <iostream>
using namespace std;
int num(int a)
{
if (a == 1)
return 1;
else if (a == 2)
return 2;
else if (a == 3)
return 3;
else if (a == 4)
return 4;
else
return num(a-1) + num(a-3);
}
int main()
{
int n;
while (1)
{
cin >> n;
if (n == 0)
break;
else
{
int data = num(n);
cout << data << endl;
}
}
return 0;
}