斐波那契数列(c++数组实现,递归实现与优化)

来源:互联网 发布:利驰软件电气教程 编辑:程序博客网 时间:2024/06/06 00:53

用数组问题求斐波拉契数列:

#include <iostream>#include<stdlib.h>using namespace std; int main(int argc, char** argv) {int i;int f[20]={1,1};//其余18个元素自动赋值为0 for(i=2;i<20;i++){f[i]=f[i-2]+f[i-1];}for(i=0;i<20;i++){cout<<f[i]<<" ";}  }

递归实现:

#include <iostream>#include<stdlib.h>using namespace std;int f(int n){if(n<3){return 1;}return f(n-1)+f(n-2);} int main(int argc, char** argv) {int n;cin>>n;cout<<f(n);return 0;}

程序优化:

#include <iostream>#include<stdlib.h>using namespace std; int a[5000];int f(int n){if(n<3){return 1;}if(a[n]>0){return a[n];}a[n]=f(n-1)+f(n-2);return a[n];}int main(int argc, char** argv) {int n;cin>>n;cout<<f(n);}


0 0
原创粉丝点击