NOIP2015神奇的幻方

5分钟模拟

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int g[300][300]; 
 5 int main(){
 6     int k;
 7     cin>>k;
 8     g[1][k/2+1]=1;
 9     int x=1,y=k/2+1;
10     for(int i=1;i<k*k;i++){
11         if(x==1&&y!=k)g[k][y+1]=i+1,x=k,y++;
12         else if(y==k&&x!=1)g[x-1][1]=i+1,x--,y=1;
13         else if(x==1&&y==k)g[x+1][y]=i+1,x++;
14         else if(x!=1&&y!=k)if(!g[x-1][y+1])g[x-1][y+1]=i+1,x--,y++;else g[x+1][y]=i+1,x++; 
15     } 
16     for(int i=1;i<=k;i++){
17         for(int j=1;j<=k;j++){
18             cout<<g[i][j]<<" ";
19         } cout<<endl;
20     }
21 }

 

posted @ 2018-09-08 17:06  saionjisekai  阅读(104)  评论(0编辑  收藏  举报