题目大意:有一头母牛每年都会生一头小牛,小牛在第四个年头开始,每年年初回生小母牛,问第n年后共有几头母牛?
解题思路:本题分两种情况讨论:
1.在前四年内,只有一头母牛具有生育能力,所以每年的母牛数为前一年的数量+1;
2.四年后,每年都会有新的小母牛具有生育能力,要如何解决呢?
仔细分析不难,每年的母牛数等于前一年的母牛数+在该年具有生育能力的母牛数(该数目等于第n-3年的母牛数);
源码附上:
#include<iostream>
#include <vector>
using namespace std;
int number[56];
void count()
{
number[1] = 1;
for (int i = 2; i <55; i++)
{
if (i <= 4)
{
number[i] = number[i - 1] + 1;
}
else
{
number[i] = number[i - 1] + number[i - 3];
}
}
}
int main()
{
int n;
count();
while (cin >> n&&n!=0)
{
cout << number[n] << endl;
}
return 0;
}