用数组问题求斐波拉契数列:
#include
#include
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<
}
}
递归实现:
#include
#include
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<
return 0;
}
程序优化:
#include
#include
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<
}