斜角蛇形方阵是如下图的方阵
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
在置顶的帖子中有一个斜角蛇形方阵的程序,下面给出另一个解法
#include "stdio.h"
#include "conio.h"
main()
{ int a[15][15]={1};
int i,j,k,n=0,count;
while(n<1 || n>15)
{ printf("请输入斜角蛇形方阵的阶数(<16): ");
scanf("%d",&n);
}
i=j=0;k=-1;
for (count=2;count<=n*n;)
{ if (k<0)
{ if (j==n-1) { ++i;k=-k;}
else if (i==0) { ++j;k=-k;}
else {--i;++j;}
}
else
{ if (i==n-1) { ++j;k=-k;}
else if (j==0) {++i;k=-k;}
else {++i;--j;}
}
a[i][j]=count++;
}
for (i=0;i<n;i++)
{ for (j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
1 2 6 7
3 5 8 13
4 9 12 14
10 11 15 16
在置顶的帖子中有一个斜角蛇形方阵的程序,下面给出另一个解法
#include "stdio.h"
#include "conio.h"
main()
{ int a[15][15]={1};
int i,j,k,n=0,count;
while(n<1 || n>15)
{ printf("请输入斜角蛇形方阵的阶数(<16): ");
scanf("%d",&n);
}
i=j=0;k=-1;
for (count=2;count<=n*n;)
{ if (k<0)
{ if (j==n-1) { ++i;k=-k;}
else if (i==0) { ++j;k=-k;}
else {--i;++j;}
}
else
{ if (i==n-1) { ++j;k=-k;}
else if (j==0) {++i;k=-k;}
else {++i;--j;}
}
a[i][j]=count++;
}
for (i=0;i<n;i++)
{ for (j=0;j<n;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}