问题描述
杨辉三角形又称Pascal三角形,它的一个重要性质是:每行端点与结尾的数为1,从第三行起三角形中的每个数字等于它两肩上的数字相加。每行数字左右对称,由1开始逐渐变大。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
…
这里的第三行的2等于第二行的第一个数和第二个数相加,第三行的第二个数3等于第二行的第一个数和第二个数相加…
要求:输入行数n,结果输出前n行的数字
代码如下:
#include "stdio.h"
int main(){
int i,j,n,a[34][34];
scanf("%d",&n);
a[0][0]=0,a[0][1]=1,a[0][2]=0;
for(i=1;i<n;i++){
a[i][0]=0,a[i][i+2]=0;
for(j=1;j<i+2;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
for(i=0;i<n;i++){
for(j=1;j<i+2;j++){
printf("%d",a[i][j]);
printf(" ");
}
printf("\n");}
return 0;}
结果如图: