(C++)用动态分配空间的方法计算斐波那契(Fibonacci)数列的前20项,并存储到动态分配的空间中

用动态分配空间的方法计算斐波那契(Fibonacci)数列的前20项,并存储到动态分配的空间中

斐波那契数(Fibonacci),亦称之为斐波那契数列,又称兔子数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。

用new为数组动态开辟内存时, 需要在类型名后缀上数组大小. 例如 :
int* p = new int[20];
这使new给20个整型数组元素分配了连续的内存空间,并将其首地址赋给了指针p .
其中第 1 维的界值(大小)可以是任何合法的正整数表达式, 如 :
int i= 3;
int* p = new int[i];
int* p = new int[i][3];
int* p = new int[i][3][4];
以上都是正确的, 但除了第一维其他维的界值都必须是常量, 如:
int i = 3, j = 4, k = 5;
int* p = new int[i][j];
int* p = new int[i][j][k];
都是错误的, j和k为整型变量, 并非常量.

new可以在为简单变量分配内存时, 进行初始化. 其基本形式为 :
p = new int(100); //动态分配内存空间, 并将100作为初值赋给*p
值得注意的是:
new不能对动态分配的数组进行初始化.

#include<iostream>
using namespace std;
int main() {
	int* p = new int[20];
	*p = 0;//第一个为0
	*(p + 1) = 1;//第二个为1
	for (int i = 2; i < 20; ++i) { 
		*(p + i) = *(p + i - 1) + *(p + i - 2);
	}
	for (int i = 0; i < 20; ++i) {
		cout << *(p + i)<<"\t";
	}
	cout << endl;
	delete[]p;
	system("pause");
	return 0;
}

在这里插入图片描述

  • 19
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值