1 条题解

  • 0
    @ 2024-10-16 20:17:01

    参考答案:

    #include<bits/stdc++.h>
    using namespace std;
    int a[20][20];
    int main() 
    {
    	int N = 0, num = 1;
    	int i, j;
    	int n;
    	int arr[20][20] = { 0 };
    	scanf("%d", &N);
    	if (N % 2 != 0) arr[N / 2][N / 2] = N * N;
    	for (n = 0; n < N / 2; n++) 
    	{
    		//→方向
    		for (j = n; j < N - n - 1; j++) arr[n][j] = num++;
    		//↓方向
    		for (i = n; i < N - n - 1; i++)	arr[i][N - n - 1] = num++;
    		//左反向
    		for (j = N - n - 1; j >= n + 1; j--) arr[N - n - 1][j] = num++;
    		//↑方向
    		for (i = N - n - 1; i >= n + 1; i--) arr[i][n] = num++;
    	}
    	for (i = 0; i < N; i++) 
    	{
    		for (j = 0; j < N; j++) printf("%d ", arr[i][j]);
    		printf("\n");
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    5414
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    3
    已通过
    1
    上传者