本文主要是介绍1978 Fibonacci数列 3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最简单的递归会爆炸,稍微改进一下,用一个变量数组存放出现过的数,减少递归的调用。
#include <iostream>
#include <cstdio>using namespace std;
//int Fibonacci(int n);
long Fibonacci(int n);
long tempResult[10001]={0};
int main()
{//freopen("in.txt","r",stdin);int n;scanf("%d",&n);printf("%ld\n",Fibonacci(n));return 0;
}/*int Fibonacci(int n)
{if (n==1||n==2){return 1;}else{return Fibonacci(n-1)+Fibonacci(n-2);}
}
*/long Fibonacci(int n)
{ if (n == 0) return 0; else if (n == 1) return 1; else if (n > 1) { if(tempResult[n] != 0) return tempResult[n]; else { tempResult[n] = Fibonacci(n - 1) + Fibonacci(n - 2); return tempResult[n]; } }
}
这篇关于1978 Fibonacci数列 3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!