审题:
本题需要我们根据题目中给出的数n,输出n行斐波那契数组
思路:
方法一:循环我们可以利用双层for循环先计算出斐波那契数组并存入数组中,然后再利用双层for循环输出数据
解题:
(1)数据计算与存储
我们需要创建的是动态的二维数组,因为每一行的数据个数都不一样。而vector可以实现我们的这种需求
由于斐波那契数列的首尾元素都是1,所以我们可以在扩充数组大小的同时把所有元素初始化为1,然后后续对除了首尾元素外的其他元素进行数据值更改
1.不对首元素操作:j初始化为1
2.不对尾元素操作:j<size-1
更改逻辑:对应位置的元素等于上一行的同一列数据加上一行的前一列数据
疑问:进行相加运算的时候是否会存在越界访问?
不会,因为只有当size为3的时候才会进入相加运算的代码
(2)数据输出
注意题目中说了我们每个数据输出域宽为5,所以我们利用setw()函数进行控制。
setw包含在头文件<iomanip>中