7-2 养兔子 (20 分)
题目描述
一对成熟的兔子每天能且只能产下一对小兔子,每次都生一公一母,每只小兔子的成熟期是1天,小兔子出生后隔一天才能再生小兔子。第一天某人领养了一对成熟的兔子,一公一母,请问第N天以后,他将会得到多少对兔子。
输入格式:
输入为一个整数n(1≤n≤90)。
输出格式:
对应输出第n天有几对兔子(假设没有兔子死亡现象,而且是一夫一妻制)。
输入样例1:
1
输出样 例1:
1
输入样例2:
2
输出样例2:
2
#include<stdio.h>
long long int born(int n)
{
int i;
long long int a[91];
a[1]=1;
a[2]=2;
for(i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
}
return a[n];
}
int main()
{
int n;
scanf("%d",&n);
printf("%lld\n",born(n));
return 0;
}
解析:
#include<stdio.h>
long long int born(int n)//返回值要是长整型long int 或双长整型long long int
{
int i;
long long int a[91];
a[1]=1;
a[2]=2;
for(i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2];
}//这里不用函数的嵌套调用主要避免程序运行超时,只进行到第n天有几对兔子的运算即可。
return a[n];
}
int main()
{
int n;
scanf("%d",&n);
printf("%lld\n",born(n));//主程序非常简单。
return 0;
}