求巨佬救救萌新,10分求助
查看原帖
求巨佬救救萌新,10分求助
365707
Oier_Yin楼主2020/10/19 16:02
#include<iostream>
#include<cstring>
using namespace std;
int n[40][40];
int pnx[1600],pny[1600];
int main()
{
	int a;
	cin>>a;
	n[1][a+1/2]=1;
	pnx[1]=1;
	pny[1]=a+1/2;
	for(int i=2;i<=a*a;i++)
	{
		if(pnx[i-1]==1&&pny[i-1]!=a)
		{
			pnx[i]=a;
			pny[i]=pny[i-1]+1;
			n[pnx[i]][pny[i]]=i;
		}
		if(pnx[i-1]!=1&&pny[i-1]==a)
		{
			pnx[i]=pnx[i-1]+1;
			pny[i]=1;
			n[pnx[i]][pny[i]]=i;
		}
		if(pnx[i-1]==1&&pny[i-1]==a)
		{
			pnx[i]=2;
			pny[i]=a;
			n[pnx[i]][pny[i]]=i;
		}
		if(pnx[i-1]!=1&&pny[i-1]!=a)
		{
			if(n[pnx[i-1]+1][pny[i-1]+1]==0)
			{
				pnx[i]=pnx[i-1]+1;
				pny[i]=pny[i-1]+1;
				
			}
			else
			{
				pnx[i]=pnx[i-1]+1;
				pny[i]=pny[i-1]-1;
			}
			n[pnx[i]][pny[i]]=i;
		}
	}
	for(int i=1;i<=a;i++)
	{
		for(int j=1;j<=a;j++)
		{
			cout<<n[i][j];
			if(j!=a)
				cout<<" ";
		}
		cout<<endl;
	}
	cout<<endl;
	return 0;
}
2020/10/19 16:02
加载中...