10分求助,出来一堆0
查看原帖
10分求助,出来一堆0
543206
shiroko2008楼主2021/8/18 22:01

对着题解一遍一遍看,找不出来错

#include<iostream>
using namespace std;
int main()
{
	int N,x,y;
	cin>>N;
	int k=N*N,n[N+1][N+1] {0};
	n[1][N/2+1]=1;
	x=1;
	y=N/2+1;
	for (int i=2;i<=k;i++) {
		if (x==1&&y!=N) {n[N][y+1]=i;x=N;y=y+1;continue;}
		if (x!=1&&y==N) {n[x-1][1]=i;x=x-1;y=1;continue;}
		if (x==1&&y==N) {n[x+1][1]=i;x++;y=1;continue;}
		if (x!=1&&y!=N) {
			if (n[x-1][y+1]==0) {n[x-1][y+1]=i;x--;y++;continue;}
			else {n[x+1][y]=i;x++;continue;}
		}
	}	
	for (int i=1;i<=N;i++) {
		for (int j=1;j<=N;j++) cout<<n[i][j];
		if (i!=N) cout<<endl;
	}
	return 0;
} 

以下是运行结果 输入

3

输出

016
750
802
2021/8/18 22:01
加载中...