描述 | |
---|---|
知识点 | 查找,搜索,排序 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入int型表示month |
输出 | 输出兔子总数int型 |
样例输入 | 9 |
样例输出 | 34 |
f(1)=1,f(2)=1,f(3)=2,f(4)=3......可以看出是斐波那契数列。
下面就好办了,可以直接用公式,也可以递归。
1 直接用公式:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
int n;
scanf("%lf",&n);
printf("%d\n", (int)((powf(((1 + sqrtf(5)) / 2), n) - powf(((1 - sqrtf(5)) / 2), n)) / sqrtf(5)));
//system("pause");
}
2 递归
#include<iostream>
using namespace std;
int getCount(int n)
{
if(n==1||n==2)
return 1;
else
return getCount(n-1)+getCount(n-2);
}
int main()
{
int n;
cin>>n;
cout<<getCount(n);
//system("pause");
return 0;
}