杨辉三角
还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Input
输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。
Output
对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。
Sample
Inputcopy | Outputcopy |
|
|
#include <stdio.h>
int main()
{
int a[50],b[50];
int n,i,j,k;
while(scanf("%d",&n) != EOF)
{
for(i = 0;i<n;i++)
{
if(i == 0)
{
a[0] = 1;
printf("1\n");
}
else if(i == 1)
{
a[1] = 1;
printf("1 1\n");
}
else
{
j = i-1;
for(k = 0;k<j;k++)
{
b[k] = a[k] + a[k+1];
}
printf("1");
for(k = 0;k<j;k++)
{
printf(" %d",b[k]);
}
printf(" 1\n");
for(k = 0;k<j;k++)
{
a[k+1] = b[k];
}
a[i] = 1;
}
}
putchar('\n');
}
return 0;
}