给出 n ( n ≤ 20 ) n(n\le20) n(n≤20),输出杨辉三角的前 n n n 行。
如果你不知道什么是杨辉三角,可以观察样例找找规律。
无
无
6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
https://www.luogu.com.cn/problem/P5732
/*
C++程序,计算杨辉三角的前n行
*/
#include
using namespace std;
long long arr[1005][2015], n, m, i, j, p;
int main()
{
cin >> n;
m = 2 * n - 1;
// 初始化第一行和第二行的数值
for (i = 0; i < n; i++)
{
arr[i][n - i - 1] = 1;
arr[i][n + i - 1] = 1;
}
// 计算杨辉三角的每一行
for (i = 2; i < n; i++)
{
for (j = n - i + 1; j < n - 2 + i; j = j + 2)
arr[i][j] = (arr[i - 1][j - 1] + arr[i - 1][j + 1]);
}
// 输出杨辉三角前n行的数值
for (i = 0; i < n; i++)
{
p = 1;
for (j = n - i - 1; p < i + 2; j = j + 2)
{
cout << arr[i][j] << " ";
p = p + 1;
}
cout << endl;
}
return 0;
}
这段代码是一个用于生成杨辉三角的程序。杨辉三角是一个由数字排列成三角形的数列,其中每个数字等于其上方两个数字的和。代码的功能是输入一个正整数n,然后生成一个n行的杨辉三角。
具体的实现过程如下:
亲测 AC