问题 B: 数列(斐波那契数列)题目中输出要求:对应每个样例输出要求的图形(参见样例格式)。
该问题中关键为格式的输出问题,每行元素之前具体有多少个空格,可以根据所给输出找规律。
#include <iostream>
#include <stdlib.h>
using namespace std;
const int maxn = 11;
//斐波那契数列的值
int f(int num) {
if (num == 0) return 0;
else if (num == 1) return 1;
else return f(num - 1) + f(num - 2);
}
int main() {
int m, n;
while (cin >> m) {
for (int i = 0; i < m; i++) {
cin >> n; // 需输出多少行的数列
for (int j = 0; j < n; j++) { // 每一行
// 每行待输出的空格,
// (2 * n - 1)为最后一行的个数,(2 * j + 1)为当前行元素个数
for (int x = 0; x < (2 * n - 1) - (2 * j + 1); ++x)
cout << " ";
// 每行待输出的元素个数
for (int k = 0; k < 2 * j + 1; k++) {
cout << f(k) << " ";
}
cout << endl;
}
}
}
return 0;
}