斐波那契数列的第一项是1,第二项是1,以后的每一项是前两项的和,即f(n)=f(n-1)+(n-2),求斐波那契数列的前25项,把它们一次放入一个5*5的二维数组,输出这个二维数组,并求出(并输出)这个二维数组的两条对角线数字的和 c++
时间: 2024-12-25 13:31:12 浏览: 4
在 C++ 中,你可以创建一个 5x5 的二维数组,然后通过递归或迭代的方式生成斐波那契数列,并将结果填充到数组中。之后,计算并输出两条对角线的和。下面是一个简单的例子:
```cpp
#include <iostream>
#include <vector>
// 递归函数用于生成斐波那契数列
std::vector<int> fibonacci(int n) {
std::vector<int> fib(n);
fib[0] = 1;
fib[1] = 1;
for (int i = 2; i < n; ++i) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib;
}
int main() {
const int size = 5; // 数组大小
std::vector<std::vector<int>> fib_array(size, std::vector<int>(size)); // 创建 5x5 的二维数组
// 生成并填充斐波那契数列到数组
for (int i = 0; i < size; ++i) {
for (int j = 0; j <= i; ++j) { // 因为对角线是 i 对应的斐波那契数
fib_array[i][j] = fibonacci(i)[j];
}
}
// 输出二维数组
for (const auto& row : fib_array) {
for (int num : row) {
std::cout << num << ' ';
}
std::cout << '\n';
}
// 计算并输出对角线的和
int diagonal_sum1 = 0, diagonal_sum2 = 0;
for (int i = 0; i < size; ++i) {
diagonal_sum1 += fib_array[i][i]; // 主对角线
diagonal_sum2 += fib_array[i][size - 1 - i]; // 副对角线
}
std::cout << "主对角线的和是: " << diagonal_sum1 << std::endl;
std::cout << "副对角线的和是: " << diagonal_sum2 << std::endl;
return 0;
}
```
阅读全文