1 题目描述
杨辉三角
成绩 | 10 | 开启时间 | 2021年09月17日 星期五 18:00 |
折扣 | 0.8 | 折扣时间 | 2021年11月6日 星期六 00:00 |
允许迟交 | 否 | 关闭时间 | 2021年11月21日 星期日 00:00 |
杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。
输入描述
输入正整数n,表示杨辉三角的行数
输出描述
根据输入的n,打印对应的杨辉三角
为了更美观,每个数字有5位,不足的位用空格补齐,比如1,输出为####1,输出时#为空格
111,输出为##111,输出时#为空格
|
测试用例 1 | 以文本方式显示
| 以文本方式显示
- 1↵
- 1 1↵
- 1 2 1↵
- 1 3 3 1↵
- 1 4 6 4 1↵
| 1秒 | 64M | 0 |
测试用例 2 | 以文本方式显示
| 以文本方式显示
- 1↵
- 1 1↵
- 1 2 1↵
- 1 3 3 1↵
- 1 4 6 4 1↵
- 1 5 10 10 5 1↵
- 1 6 15 20 15 6 1↵
- 1 7 21 35 35 21 7 1↵
- 1 8 28 56 70 56 28 8 1↵
- 1 9 36 84 126 126 84 36 9 1↵
| 1秒 | 64M | 0 |
代码
#include <cstdio>
#include <cstdlib>
void YHtriangle(const int n) {
int** array = new int* [n];
for (int i = 0; i < n; i++)
{
array[i] = new int[n];
}
int i, j;
int formatcounter;
for (i = 0; i < n; i++) {
array[i][0] = 1;
array[i][i] = 1;
}
for (i = 2; i < n; i++) {
for (j = 1; j < i; j++) {
array[i][j] = array[i - 1][j - 1] + array[i - 1][j];
}
}
for (i = 0; i < n; i++) {
for (formatcounter = 0; formatcounter < n - i - 1; formatcounter++) {
printf(" ");
}
for (j = 0; j < i + 1; j++) {
printf("%5d", array[i][j]);
if (i == j) {
printf("\n");
}
else {
printf(" ");
}
}
}
for (int i = 0; i < n; i++)
{
delete array[i];
}
delete array;
}
int main(int argc, char* argv[]) {
int n;
scanf("%d", &n);
if (n < 1) return 0;
YHtriangle(n);
return 0;
}