20分求解
查看原帖
20分求解
1637646
baishen33楼主2025/7/30 11:28
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n, k = 1, x = 1, y = 0;
    int a[105][105]; 
    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;
}
2025/7/30 11:28
加载中...