求调玄关
查看原帖
求调玄关
1342002
__^浅笑.__楼主2024/6/8 19:55

输出第三四条就错了

1 2 3 4
0 0 0 5
0 0 0 6
10 9 8 7
#include <bits/stdc++.h>
using namespace std;
long long n,x,y,ji,a[5005][5005];
int main(){
	cin>>n;
	x=1,y=1,ji=2;
	a[x][y]=1;
	while(ji<=n*n){
		while(y+1<=n && a[x][y+1]==0){
			a[x][y+1]=ji;
			++ji;
			++y;
		}
		while(x+1<=n && a[x+1][y]==0){
			a[x+1][y]=ji;
			++ji;
			++x;
		}
		while(y-1<=n && a[x][y-1]==0){
			a[x][y-1]=ji;
			++ji;
			--y;
		}
		while(x-1<=n && a[x-1][y]==0){
			a[x-1][y]=ji;
			++ji;
			--x;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<setw(3)<<a[i][j];
		}
		cout<<endl;
	}
	return 0;
} 
2024/6/8 19:55
加载中...