本题要求按照规定格式打印前N行杨辉三角。
输入格式:
输入在一行中给出N(1<=N<=10)。
输出格式:
以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。
输入样例:
6
输出样例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
程序:
#include
#define ARRAY_SIZE 10
int main(void) {
int a[ARRAY_SIZE][ARRAY_SIZE];
int i, j, k, n;
scanf("%d", &n);
for(i = 0; i < n; ++i) {
for(j = 0; j < n; ++j) {
if(j == 0 || i == j)
a[i][j] = 1; /* 两腰上的元素均为1 */
if(j > 0 && i > j)
/* 上一行前一列元素和上一行同一列元素之和*/
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for(i = 0; i < n; ++i) {
for(j = 0; j < n + 3 - i - 1; ++j)
printf(" ");
printf("%d", a[i][0]);
for(k = 1; k < n; ++k) {
if(i >= k)
printf("%4d", a[i][k]);
}
printf("\n");
}
return 0;
}