20分,自行下载测试非AC数据没问题,各位大佬帮忙看一下
查看原帖
20分,自行下载测试非AC数据没问题,各位大佬帮忙看一下
739414
a13750959287楼主2022/11/14 18:23

思路:不能右则下,不能下则左,不能左则上,不能上则右。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,j=1,k=1,bj=1,a[10][10];
	cin>>n;
	memset(a,0,sizeof(a));
	for(int i=1;i<=n*n;i++){
		if(k+1<=n && a[j][k+1]==0 && bj==1){
			a[j][k]=i;
			k++;
		}
		else if(j+1<=n && a[j+1][k]==0){
			a[j][k]=i;
			j++;
		}
		else if(k>1 && a[j][k-1]==0){
			a[j][k]=i;
			k--;
		}
		else if(j>0 && a[j][k]==0){
			a[j][k]=i;
			j--;
			if(a[j-1][k]==0) bj=0;
			else bj=1;
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++){
			printf("%3d ",a[i][j]);
		}
		cout<<endl;
	}
}
2022/11/14 18:23
加载中...