贝壳找房 斐波那契数列 动态规划
题目描述
菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数K,要求菲波那契数列中第k个数是多少。
输入描述:
输入一行,包含一个正整数k。(0<k<47)
输出描述:
输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小
示例1
输入
19
输出
4181
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 1e2+5;
int arr[maxn];
int fib(int n)
{
if(n==1 || n==2)
{
arr[1]=1;
arr[2]=1;
return 1;
}else
{
if(arr[n]==-1)
{
arr[n]=fib(n-1)+fib(n-2);
return arr[n];
}else return arr[n];
}
}
int main()
{
memset(arr,-1,sizeof(arr));
fib(47);
int n;
while(cin>>n)
{
cout<<arr[n]<<endl;
}
return 0;
}