题目描述
杨辉三角形,贾宪又称三角形,帕斯卡三角形,是二项式系数在
三角形中的一种几何排列。下图是5行的杨辉三角形。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
构造规则是:
每行首尾是1,其他每个数字等于上一行的左右两个数字之和。
我们的任务是打印一定行数的杨辉三角形,如样例,
为了美观,我们约定,数字1~9仍用数字表示,
10~35,36~61,62~87,...,分别用a~z表示,如10,36,62都用a表示。
输入要求
一个整数n(1<=n<=20)
输出要求
输出题目约定的如样例的杨辉三角形。
#include<stdio.h>
int main()
{
int a[20][20] = { 0 }, n;
char b;
while (scanf_s("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
a[i][0] = 1;
a[i][i] = 1;
}
for (int p = 2; p < n; p++) {
for (int i = 1; i < p; i++) {
a[p][i] = a[p - 1][i] + a[p - 1][i - 1];
}
}
for (int i =1; i <= n; i++) {
for (int p = n - i; p > 0; p--)printf(" ");
for (int e = 0; e < i-1; e++) {
if (a[i - 1][e] < 10)
b = '0' + a[i - 1][e];
else
b = 'a' + (a[i - 1][e] - 10) % 26;
printf("%c ", b);
}
b = '0' + a[i - 1][i - 1];
printf("%c\n", b);
}
}
}