蛇形填数的核心就是转向,
while(x+1<n&&!a[x+1][y]) a[++x][y]==++count;
每一个方向,都有临界转向范围即x+1<n 和下一个数组内是否有数值。
类似的,矩形环绕和三角环绕,
- #include <stdio.h>
- main()
- {
- int n,a[10][10]={0},i=1,j,x=1,y=0,t,c=1;
- a[0][0]=1;
- scanf("%d",&n);
- while (i<n)
- {
- x=i;y=0;
- while (y<i||y==i)
- {
- a[x--][y++]=++c;
- }
- i++;
- }
- for (i=0;i<n;i++)
- {
- for(j=0;j<n-i;j++)
- printf("%5d",a[i][j]);
- printf("\n");
- }
- }