成就感无与伦比(蒟蒻)
2025-09-30 22:18:32
发布于:上海
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n;
int b[40][40];
struct node{
int x=0,y=0;
}a[1700];
int main(){
	cin>>n;
    a[1].x=1,a[1].y=(n+1)/2;
    b[1][(n+1)/2]=1;
    for(int i=2;i<=n*n;i++){
        if(a[i-1].x==1 && a[i-1].y!=n){
            a[i].x=n,a[i].y=a[i-1].y+1;
            b[n][a[i-1].y+1]=i;
            
        }else if(a[i-1].y==n && a[i-1].x!=1){
            a[i].y=1;
            a[i].x=a[i-1].x-1;
            b[a[i-1].x-1][1]=i;
            
        }else if(a[i-1].x==1 && a[i-1].y==n){
            a[i].x=a[i-1].x+1;
            a[i].y=a[i-1].y;
            b[a[i-1].x+1][a[i-1].y]=i;
            
        }else if(a[i-1].x!=1 && a[i-1].y!=n){
            
            if(b[a[i-1].x-1][a[i-1].y+1]==0){
                a[i].x=a[i-1].x-1;
                a[i].y=a[i-1].y+1;
                b[a[i-1].x-1][a[i-1].y+1]=i;
                
            }else{
                a[i].x=a[i-1].x+1;
                a[i].y=a[i-1].y;
                b[a[i-1].x+1][a[i-1].y]=i;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<b[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}
全部评论 1
%%%
2025-10-03 来自 上海
0












有帮助,赞一个