0分求助
查看原帖
0分求助
1271054
xuyutong1234楼主2024/12/5 20:07
#include<bits/stdc++.h>
using namespace std;
int a[25][25];
int main(){
	int n;cin>>n;
	a[1][n/2+1]=1;
	int x=n/2+1,y=1,ans=2;
	while(ans<=n*n){
		if(y==1){
			if(x==n){
				if(a[n][1]==0) a[n][1]=ans,y=n,x=1;
				else{
					if(y==n) y=1;
					else y--;
					a[y][x]=ans;
				}
			}
			else{
				if(a[n][x+1]==0) a[n][x+1]=ans,y=n,x++;
				else{
					if(y==n) y=1;
					else y--;
					a[y][x]=ans;
				}
			}
		}
		else{
			if(x==n){
				if(a[y+1][1]==0) a[y+1][1]=ans,y=n,x=1;
				else{
					if(y==n) y=1;
					else y--;
					a[y][x]=ans;
				}
			}
			else{
				if(a[y+1][x+1]==0) a[y+1][x+1]=ans,y=n,x++;
				else{
					if(y==n) y=1;
					else y--;
					a[y][x]=ans;
				}
			}
		}
		ans++;
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++) cout<<a[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}
2024/12/5 20:07
加载中...