题目内容:
编写一个C++风格的程序,用动态分配空间的方法计算Fibonacc数列的前n(n>=2)项并存储到动态分配的空间(数组中),然后再输出。
![](https://i-blog.csdnimg.cn/blog_migrate/46afad5a9699674e5a2310f2ec754fcf.png)
#include <iostream>
using namespace std;
int fib(int i)
{
if(i==1||i==2)
return 1;
else
{
return fib(i-1)+fib(i-2);
}
}
int main()
{
int n;
while(true)
{
cin >> n;
if(n==1)
{
cout<<"Please reinput n(n>=2):"<<endl; //n=1时提示重新输入
continue;
}
else
{
int *p=new int [n]; //动态分配,数组长度为n
for(int i=1;i<=n;i++)
{
*p=fib(i);
cout<<*p<<endl;
}
delete []p; //释放内存
}
return 0;
}
}
结果:
![](https://i-blog.csdnimg.cn/blog_migrate/52907b3adc6b7cb9226d01e663b23108.png)
总结:
使用动态分配内存的方法来来储存数组,先定义一个指针*p,然后请求内存,使用new运算符来为变量请求内存,在最后使用delete操作符来释放内存。
在判断n等于1时,提示需要重新输入,可以利用while循环来重新输入n的值,