输入示例: 4 1 2 3 4 输出示例: 1 2 3 5
时间: 2024-01-03 20:03:44 浏览: 23
根据你给出的示例,这道题目实际上是让你输出斐波那契数列的前 n 项,其中 n 是输入的第一个数。
那么我们可以根据上面的动态规划算法,编写一个函数来计算斐波那契数列的前 n 项:
```cpp
#include <iostream>
using namespace std;
void fibonacci(int n) {
int dp[n+1];
dp[0] = 0;
dp[1] = 1;
cout << dp[1] << " "; // 输出第一项
for (int i = 2; i <= n; i++) {
dp[i] = dp[i-1] + dp[i-2];
cout << dp[i] << " "; // 输出第 i 项
}
cout << endl; // 换行
}
int main() {
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n;
cin >> n;
fibonacci(n);
}
return 0;
}
```
上面的代码中,我们首先读入测试数据的组数 t,然后循环 t 次,每次读入一个 n,调用 `fibonacci(n)` 函数输出前 n 项的斐波那契数列。在 `fibonacci` 函数中,我们使用了动态规划算法来计算斐波那契数列的前 n 项,并且在计算的过程中输出了每一项的值。
你可以根据需要修改输出格式,比如去掉数字之间的空格,或者输出成一行。