问题描述
- 如果一对兔子每月生一对兔子;一对新生兔,从第二个月起就开始生兔子;假定每对兔子都是一雌一雄,试问一对兔子,第
n
个月能繁殖成多少对兔子?(举例,第1个月是1对兔子,第2个月是2对兔子)
输入格式
- 数字
输出格式
- 数字
输入样例
- 5
输出样例
- 8
数据范围
[1, 75]
测试数据集
- 样例1
- 输入:
5
- 输出:
8
- 输入:
- 样例2
- 输入:
1
- 输出:
1
- 输入:
- 样例3
- 输入:
15
- 输出:
987
- 输入:
- 样例4
- 输入:
50
- 输出:
20365011074
- 输入:
算法分析
题目的意思是求出斐波那契数列的第n项,用一个循环就可以解决
完整代码
#include <iostream>
using namespace std;
long long solution(int A) {
// Edit your code here
//题意是斐波那契数列,求出第A项
//1 1 2 3 5 8 13 21 下标从0开始
long long f1=1;
long long f2=1;
long long f3=2;
if(A==0||A==1)
return 1;
if(A==2)
return 2;
for(int i=0;i<=A-2;i++)//斐波那契额数列
{
f3=f1+f2;
f1=f2;
f2=f3;
}
return f3;
}
int main() {
// Add your test cases here
std::cout << (solution(5) == 8) << std::endl;
std::cout << (solution(1) == 1) << std::endl;
std::cout << (solution(15) == 987) << std::endl;
std::cout << (solution(50) == 20365011074) << std::endl;
return 0;
}