先讲思路:提面很简单,说一只母牛每年生一只,每过四年小母牛就可以长成大母牛然后生出一个小母牛。
年份:1 2 3 4 5 6
牛数:1 2 3 4 6 9
从上面可以看出 从第四年开始有规律,当年数量=前一年数量+前三年数量。用数组表示下标从0开始 a[i]=a[i-1]+a[i-3]
这就是斐波那契数列的应用
并且题目还限制了数量
所以代码如下
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int a[100];
void f(int n)
{
a[0]=1;
a[1]=2;
a[2]=3;
for(int i=3;i<n;i++)
a[i]=a[i-1]+a[i-3];
}
int main()
{
int n;
f(55);
while(scanf("%d",&n)&&n!=0)
{
printf("%d\n",a[n-1]);
}
return 0;
}
首先计算出斐波那契数组,然后就可以计算每一年有多少母牛