养兔子
时间: 1ms 内存:64M
描述:
一对成熟的兔子每月能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是一个月,而成熟后的第二个月才开始生小兔。某人领养了一对小兔子,一公一母,请问第N个月以后,他将会得到多少对兔子。
输入:
测试数据包括多组,每组一行,为整数n(1≤n≤90)。 输入以0结束。
输出:
对应输出第n个月有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。
示例输入:
1
2
0
示例输出:
1
2
提示:
参考答案(内存最优[748]):
#include<stdio.h>
int main()
{
long long int a[100];
long int b,i;
do
{
scanf("%ld",&b);
if(b==0)
break;
for(i=1;i<=3;i++)
a[i]=i;
for(i=4;i<=b;i++)
a[i]=a[i-1]+a[i-2];
printf("%lld\n",a[b]);
}while(b!=0);
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
int main()
{
long long int n,i,s,t,a1,a2;
while(scanf("%lld",&n)&&n!=0)
{a1=0,a2=1;
for(i=1;i<=n;i++)
{
s=a1+a2;
t=a2;
a2=t+a1;
a1=t;
}
printf("%lld\n",s);
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。