C语言母牛问题

问题 F: 母牛问题

时间限制: 1 Sec  内存限制: 128 MB
提交: 94  解决: 60
[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

假设单性繁殖成立,若一头母牛,从出生起第四个年头开始,每年生一头母牛,而生出的小母牛在之后的第四年也将具有生殖能力。按此规律,第n年时有多少头母牛?

输入

输入数据为整数n(1≤n≤40)。

输出

对于每个n,输出其第n年的母牛数

样例输入

5 6 7 8 9

样例输出

3
4
6
9
13
思路:找到年份和母牛数量的关系
第一年:A 数量1
第二年:A  1
第三年:A  1
第四年:A:a(1岁)  2
第五年:A:a(2),b(1)  3
第六年:A:a(3),b(2),c(1)  4
第七年:A:a(4),b(3),c(2),d(1)  6
    a:aa(1)
第八年:A:a(5),b(4),c(3),d(2),e(1)  9
    a:aa(2),ab(1),b:bb(1)
发现:第八年数量等于第七年数量+第5年数量-->a[i]=a[i-1]+a[i-3]

#include <stdio.h>
typedef long long ll ;

 

int main()
{
int n ;
ll a[100000];

 

while(scanf("%d",&n)!=EOF &&1<=n&&n<=40)
{
int i,sum ;
a[1]=1;
a[2]=1;
a[3]=1;
a[4]=2;
if(n==1) printf("%d\n",a[1]);
if(n==2) printf("%d\n",a[2]);
if(n==3) printf("%d\n",a[3]);
if(n==4) printf("%d\n",a[4]);
if(n>=5)
{
sum=0;
for(i=5;i<=n;i++)
{
a[i]=a[i-1]+a[i-3];
if(i==n) sum=sum+a[i];
}
printf("%d\n",sum);
}

 

}

 

}

 
 
 

猜你喜欢

转载自www.cnblogs.com/cocobear9/p/12405768.html
今日推荐