大佬看看为什么爆0
查看原帖
大佬看看为什么爆0
543116
YJXe楼主2022/3/6 11:53
//起点 (1,n)
//方向: 1.下 2.左 3.上 4.右、
//什么时候不能走,需要换方向? 
//能走:按当前方向走的下一个格子的数应该是初始值 
#include<bits/stdc++.h>
using namespace std;
int a[25][25],n,x,y,s;
int main()
{
	scanf("%d",&n);
	x=1;
	y=n;
	a[x][y]=1;
	s=2;
	while(s<=n*n)//s表示当前该填入的数 
	{
		while(x+1<=n && a[x+1][y]==0)
		{
			x++;
			a[x][y]=s;
			s++;
		}
		while(y-1>=1 && a[x][y-1]==0)
		{
			y--;
			a[x][y]=s;
			s++;
		}
		while(x-1>=1 && a[x-1][y]==0)
		{
			x--;
			a[x][y]=s;
			s++;
		}
		while(y+1<=n && a[x][y+1]==0)
		{
			y++;
			a[x][y]=s;
			s++;
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}
2022/3/6 11:53
加载中...