#include <stdio.h>
#define maxn 34
int main(){
int n,i,j,a[maxn+1][maxn+1];
scanf("%d",&n);
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
if(j==i){
a[i][j]=1;
printf("%d\n",a[i][j]);
}
else if(j==1){
a[i][j]=1;
printf("%d ",a[i][j]);
}
else {
a[i][j]=a[i-1][j-1]+a[i-1][j];
printf("%d ",a[i][j]);
}
}
}
return 0;
}
由于i的初始值为1,所以实质上浪费了数组a的一部分空间。这也是a[maxn+1][maxn+1]的原因。不过不影响结果。