10分求助
查看原帖
10分求助
670621
nan_xing楼主2022/8/1 21:45
#include<bits/stdc++.h>
using namespace std;
int k[10010][10010],x=1,y,a=2,n,s;
int main()
{ 
	cin>>n;
	y=(n+1)/2;
	k[x][y]=1;
	s=n*n;
	for(int i=2;i<=s;++i)
	{
		if(x==1&&y!=n)
		{
			k[n][y+1]=a;
			x=n;
			y+=1;
			a++;
		}
		else if(x!=1&&y==n)
		{
			k[x-1][1]=a;
			x-=1;
			y=1;
			a++;
		}
		else if(x==1&&y==n)
		{
			k[x+1][y]=a;
			x+=1;
			a++;
		}
		else 
    	{
       		if(k[x-1][y-1]==0)
       		{
	       		k[x-1][y-1]=a;
   		    	x-=1;
    	    	y-=1;
	   		    a++;
	        }
    		else
       		{
	       		k[x+1][y]=a;
	        	x+=1;
		        a++;
	        }
    	}
	}
	for(int i=1;i<=n;++i)
	{
		for(int j=1;j<=n;j++)
		{
			cout<<k[i][j]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2022/8/1 21:45
加载中...