成就感无与伦比(蒟蒻)
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











有帮助,赞一个