本题要求按照规定格式打印前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
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include <stdio.h>
void blank(int i, int n);
int main(int argc, char *argv[])
{
int s = 1, h; // 数值和高度
int i = 1, j; // 循环计数
scanf("%d", &h); // 输入层数
blank(i,h);
printf("%4d\n",1); // 输出第一个 1
for (i = 2; i <= h; s = 1, i++) // 行数 i 从 2 到层高
{
blank(i,h);
printf("%4d",1); // 第一个 1
for (j = 1; j <= i - 2; j++) // 列位置 j 绕过第一个直接开始循环
//printf("%d ", (s = (i - j) / j * s));
printf("%4d", (s = (i - j) * s / j));
printf("%4d\n",1); // 最后一个 1,换行
}
return 0;
}
void blank(int i, int h)
{
int j;
for(j=0;j<h-i;j++){
printf(" ");
}
}
//1 1
//2 1 1
//3 1 2 1
//4 1 3 3 1
//5 1 4 6 4 1
//6 1 5 10 10 5 1