当年一道课后题,要求输出如下图形:
Output the following triangle:
1 3 4 10 11 21
2 5 9 12 20
6 8 13 19
7 14 18
15 17
16
当时找了半天规律,写的代码:
#include<stdio.h>
#define N 6
int main()
{
int a[N][N]={0};
int i,j,n;
/*找了半天规律,填充数组*/
for(i=0;i<N;i++)
{
n=i*(i+1)/2;
if(i%2==0)
{
for(j=i+1;j>0;j--)
{
a[i-j+1][j-1]=n+i-j+2;
}
}
else
{
for(j=0;j<=i;j++)
{
a[i-j][j]=n+j+1;
}
}
}
/*打印字符*/
for(i=0;i<N;i++)
{
for(j=0;j<N-i;j++)
{
printf(" %d",a[i][j]);
}
printf("\n");
}
/*getchar();*/
return 0;
}