神奇的幻方

[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 }

 

posted @ 2019-08-16 13:38  GTR_PaulFrank  阅读(153)  评论(0编辑  收藏  举报