输出杨辉三角形(两个腰上的数字都为1,其它位置上的数字是其上一行中与之相邻的两个整数之和)。
样例输入n(1<=n<=50)
2 3
样例输出
1 1 1 1 1 1 1 2 1
【思路】用一个二维数组保存杨辉三角形的值,这样当前值就可以取到上一行相邻两个元素了.
#include<stdio.h>
int main(void)
{
long long a[100][100];
int i,j,num;
while(scanf("%d",&num)!=EOF){
for(i=0;i<100;i++) //初始化数组
{
for(j=0;j<100;j++)
a[i][j]=0;
}
for(i=0;i<num;i++) //使数组的第一列都为1
a[i][0]=1;
for(i=1;i<num;i++) //第i行j列元素等于第i-1行j列和第i-1行j-1列元素的和
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<num;i++) //输出杨辉三角形
{
for(j=0;j<=i;j++)
printf("%lld ",a[i][j]);
printf("\n");
}
printf("\n");
}
return 0;
}