神奇的幻方
[Time Gate]
https://www.luogu.org/problem/P2615
【解题思路】
一道水体模拟,枚举即可
【code】
1 #include <cstdio> 2 #include <iostream> 3 using namespace std; 4 int n,k,cnt; 5 int x,y; 6 int a[40][40]; 7 int main(){ 8 scanf("%d",&n); 9 cnt=1; 10 a[1][n/2+1]=cnt++; 11 x=1,y=n/2+1; 12 while(cnt<=n*n){ 13 if(x==1&&y!=n){ 14 a[n][++y]=cnt; 15 x=n; 16 } 17 else if(x!=1&&y==n){ 18 a[--x][1]=cnt; 19 y=1; 20 } 21 else if(x==1&&y==n) 22 a[++x][y]=cnt; 23 else if(x!=1&&y!=n){ 24 if(!a[x-1][y+1]){ 25 a[x-1][y+1]=cnt; 26 x--; 27 y++; 28 } 29 else 30 a[++x][y]=cnt; 31 } 32 cnt++; 33 } 34 for(register int i=1;i<=n;i++){ 35 for(register int j=1;j<=n;j++) 36 printf("%d ",a[i][j]); 37 printf("\n"); 38 } 39 return 0; 40 }