由题意得:
1.每行的数字的差 为公差为1的等差数列 每行的首项为所在行数
2.每行数字的第一个数字 为(所在行数)*(所在行数+1)/2
3.每行数字的个数 为第一行为n 下面每行递减一个
4.代码如下:
#include<stdio.h>
int main()
{
int n,i,j,k=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
for (j=i*(i+1)/2; j<=n*(n-1)/2+i; j=j+k)
{
printf("%d ",j);
k++;
}
k=i;
if (i!=n)
printf("\n");
}
return 0;
}