C++输入 输入只有一组,具体而言输入只包含一个正整数n(1 <= n <= 30),表示将要输出的杨辉三角的层数。 输出 输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开。 难度 较难 输入示例 4 输出示例 1 1 1 1 2 1 1 3 3 1
时间: 2023-06-16 16:03:57 浏览: 90
以下是C++实现的代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int a[35][35] = {0}; // 定义数组,用来存储杨辉三角
for (int i = 1; i <= n; i++) {
a[i][1] = a[i][i] = 1; // 每行第一个和最后一个数都是1
for (int j = 2; j < i; j++) {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; // 根据杨辉三角的性质计算出每个数
}
}
// 输出杨辉三角
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
思路解析:
首先,我们定义一个二维数组 `a`,用来存储杨辉三角。因为杨辉三角是一个等腰三角形,所以我们可以将其看作一个二维数组,其中第 `i` 行有 `i` 个数。然后,我们根据杨辉三角的性质,可以得出每个数的值,具体而言,对于第 `i` 行的第 `j` 个数,其值为 `a[i-1][j-1] + a[i-1][j]`。最后,我们遍历数组,输出每个数即可。
需要注意的是,由于数组下标从0开始,而杨辉三角从第1行开始,所以我们在定义数组时,将其大小设为 `35×35`,而不是 `30×30`。另外,每个数之间要用空格隔开,并且每行输出后要换行。
阅读全文