2 条题解

  • 1
    @ 2025-5-10 11:29:49
    #include <bits/stdc++.h>
    using namespace std;
    #define LL long long
    const int N = 1e2 + 10;
    const int INF = 0x3f3f3f3f;
    int n , a[N][N];
    void f( int x )
    {
    	if ( x == n )
    	{
    		return;
    	}
    	for ( int i = 1 ; i <= x ; i++ )
    	{
    		a[ ( n - x ) / 2 ][ ( n - x ) / 2 + i ] = 1;
    	}
    	for ( int i = 1 ; i <= x ; i++ )
    	{
    		a[ ( n - x ) / 2 + i ][ ( n - x ) / 2 ] = 2;
    	}
    	for ( int i = 1  ; i <= x ; i++ )
    	{
    		a[ n + 1 - ( n - x ) / 2 ][ ( n - x ) / 2 + i ] = 3;
    	}
    	for ( int i = 1 ; i <= x ; i++ )
    	{
    		a[ ( n - x ) / 2 + i ][ n + 1 - ( n - x ) / 2 ] = 4;
    	}
    	f( x + 2 );
    }
    int main()
    {
        cin >> n;
        if ( n % 2 == 1 )
    	{
    		f(1);
    	}
        else 
    	{
    		f(2);
    	}
        for ( int i = 1 ; i <= n ; i++ )
    	{
    		for ( int j = 1 ; j <= n ; j++ )
    		{
    			cout << a[i][j] << " ";
    		}
    		cout << endl;
    	}
    	return 0;
    }
    //菜鸟驿站
    //老六专属

    信息

    ID
    1037
    时间
    1000ms
    内存
    128MiB
    难度
    8
    标签
    递交数
    15
    已通过
    7
    上传者