1 条题解

  • 0
    @ 2025-9-9 23:57:01

    C++ :

    #include<iostream> 
    #include<stdio.h>
    #include<string.h>
    const int N = 100;
    int a[N][N];
    
    using namespace std;
    int main()
    {
    	//freopen("2.in","r",stdin);
    	//freopen("2.out","w",stdout);
    	int T;
    	cin>>T; 
    	while(T--)
    	{
    		int n;
    		cin>>n;
    		memset(a,0,sizeof(a));
    		int x=0,y=n-1;
    		int t=a[x][y]=1;
    		while(t<n*n)
    		{
    			
    		
    			while(y-1>=0&&!a[x][y-1]) a[x][--y]=++t;
    			while(x-1>=0&&!a[x-1][y]) a[--x][y]=++t;
    			while(y+1<n&&!a[x][y+1]) a[x][++y]=++t;
    			while(x+1<n&&!a[x+1][y]) a[++x][y]=++t;	
    		}
    		for(x=0;x<n;x++)
    			for(y=0;y<n;y++) 
    				printf("%d%s",a[x][y],y!=n-1?" ":"\n");
    		puts("");
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    2195
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者