#include<stdio.h>
int main()
{
int n =0;
scanf("%d",&n);
int arr[31][31]={0}; //定义一个二维数组同时初始化为零
arr[1][1]=1; //赋第一个值
for(int i = 2;i<n+1;++i) //从原数组第三行第二列开始循环赋值,因为顶上一行为零,所以多循环一行一列
{
for(int j = 1;j<n+1;++j)
{
arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; //等于左上加上方的和
if(arr[i][j]==0) break;
}
}
for(int i = 1;i<n+1;++i) //因为最外围是最开始初始化的零,所以不打印,同时多打印一行
{
for(int j = 1;j<n+1;++j)
{
if(arr[i][j]!=0)
printf("%5d",arr[i][j]);
}
printf("\n");
}
return 0;
}

京公网安备 11010502036488号