题解(发后好后悔)
2025-04-14 20:28:19
发布于:浙江
60阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;//头文件
int a[200][200];
int main(){
	int i=1,j=0;
	int k=0;
	int n;
	cin>>n;
	while(k<n*n){
		while(a[i][j+1]==0&&j<n)
		{
			a[i][++j]=++k;
		}
		while(a[i+1][j]==0&&i<n)
		{
			a[++i][j]=++k;
		}
		while(a[i][j-1]==0&&j>1)
		{
			a[i][--j]=++k;
		}
		while(a[i-1][j]==0&&i>1)
		{
			a[--i][j]=++k;
		}
		if(a[i][j+1]==0){
			a[i][++j]=++k;
		}
		while(a[i+1][j]==0&&i<n)
		{
			a[++i][j]=++k; 
		}
		while(a[i][j+1]==0&&j<n)
		{
			a[i][++j]=++k;
		}
		while(a[i-1][j]==0&&i>1)
		{
			a[--i][j]=++k;
		}
		while(a[i][j-1]==0&&j>1)
		{
			a[i][--j]=++k;
		}
		if(a[i+1][j]==0)
		{
			a[++i][j]=++k;
		}
		
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
//为什么会这样??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
这里空空如也







有帮助,赞一个