用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中
F1 = 1(n = 1)
F2 = 1 (n = 2)
F3 = Fn - 1 + Fn - 2(n > = 3)
方法1(函数)
#include<iostream>
using namespace std;
int fun(int p)
{
if (p == 1)
{
return 1;
}
else if(p == 2)
{
return 1;
}
else
{
return (fun(p-1) + fun(p-2));//递归
}
}
int main()
{
int *p;
//int *q;
p = new int[20];
for(int i = 1;i <= 20;i++)
{
*p = fun(i);
cout<<*p<<endl;
}
delete []p;
return 0;
}
方法2(数组)
#include<iostream>
using namespace std;
int main()
{
int f[20] = {1,1};
int i;
int *p;
p = new int[20];
for (i = 2;i < 20;i++)
{
f[i] = f[i-2] + f[i-1];
}
for (i = 0;i < 20;i++)
{
*p = f[i];
cout<<*p<<endl;
if(i % 5 == 0)
cout<<endl;
}
delete []p;
return 0;
}