【笔试题】养兔子
作者:互联网
【笔试题】养兔子
文章目录
1、题目描述
一只成熟的兔子每天能产下一胎兔子。每只小兔子的成熟期是一天。 某人领养了一只小兔子,请问第N天以后,他将会得到多少只兔子。
2、输入/出描述
输入描述:测试数据包括多组,每组一行,为整数n(1≤n≤90)。
输出描述:对应输出第n天有几只兔子(假设没有兔子死亡现象)。
3、示例
输入: 1 2
输出: 1 2
4、分析
刚开始递推公式不是很好想,就把前几天兔子的个数列出来,分为成熟兔子+刚生下来的兔子,第i+1天的成熟兔子等于第i天的所有兔子,第i+1天的刚生下来的兔子等于第i天的成熟兔子即第i-1天的所有兔子,即可得出递推式。除此之外用递归会超时,用一维数组存就好了。
时间 | 成熟兔子 | 刚生下来的兔子 |
---|---|---|
第1天 | 1 | 0 |
第2天 | 1 | 1 |
第3天 | 2 | 1 |
第4天 | 3 | 2 |
第5天 | 5 | 3 |
第6天 | 8 | 5 |
第7天 | 13 | 8 |
… | … | … |
在者,仔细观察它其实就是斐波那契数列。
5、代码
#include <iostream>
using namespace std;
int main(){
int n;
long long a[100];
a[1]=1;
a[2]=2;
while(cin>>n){
for(int i=3;i<=n;i++){
a[i]=a[i-1]+a[i-2];
}
cout<<a[n]<<endl;
}
}
标签:int,笔试,成熟,兔子,刚生,描述 来源: https://blog.csdn.net/Sunnyside_/article/details/115081693