0分求助
查看原帖
0分求助
1402055
psc_0708楼主2024/12/1 12:01
#include<bits/stdc++.h>
using namespace std;
int n,x[1005][1005];
int nx,ny,np,ns;
int main(){
    cin>>n;
    x[1][(n+1)/2]=1;
    nx=1,ny=(n+1)/2,np=1,ns=n*n-1;
    while(ns!=0){
        int v=nx,w=ny;
        nx--;
        if(nx==0){
            nx=n;
        }
        ny++;
        if(ny==n+1){
            ny=0;
        }
        if(x[nx][ny]==0){
            x[nx][ny]=++np;
            ns--;
        }else{
            nx=v;
            ny=w;
            nx--;
            if(nx==n+1){
                nx=0;
            }
            x[nx][ny]=++np;
            ns--;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<x[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

2024/12/1 12:01
加载中...