蒟蒻题解有部分看不太懂。请求大佬帮助!qwq
查看原帖
蒟蒻题解有部分看不太懂。请求大佬帮助!qwq
593753
LukeSu楼主2022/3/9 21:47

来自赞数第二高的题解:

为什么y初始化是0呢?

while(y<n&&!a[x][y+1])a[x][++y]=k++;中,

数组!a[x][y+1]下标 “x” 和 “y+1”是怎么推出来的,看不太懂。。

#include<bits/stdc++.h>
using namespace std;
int a[15][15];
int main()
{
	int n,k=1,x=1,y=0;;
	cin>>n;
	while (k<=n*n)
	{
		while(y<n&&!a[x][y+1])a[x][++y]=k++;
		while(x<n&&!a[x+1][y])a[++x][y]=k++;
		while(y>1&&!a[x][y-1])a[x][--y]=k++;
		while(x>1&&!a[x-1][y])a[--x][y]=k++;
	}
	for (int i=1;i<=n;i++)
	{
		for (int j=1;j<=n;j++)printf("%3d",a[i][j]);
		printf("\n");	
	}	
	return 0;
}
2022/3/9 21:47
加载中...