正经题解
2025-08-04 15:38:07
发布于:江西
4阅读
0回复
0点赞
思路
可以使用二维数组,实时判断当前位置,如果位置是每一行第一个和最后一个则都为1,否则将当前值设为左上方和正上方数字的和。
代码
#include <iostream>
using namespace std;
int main()
{
int arr[21][21]; // 题目说最大20。
int n;
cin >> n;
int t = 1;
for(int i = 0; i < n; i++)
{
for(int j = 0; j <= i; j++)
{
if(j == 0 || j == i)
arr[i][j] = 1; // 第一个和最后一个
else
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; // 中间部分
}
}
}
for(int i = 0; i < n; i++)
{
for(int j = 0; j <= i; j++)
{
cout << arr[i][j] << " "; // 遍历数组
}
cout << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个