1 条题解

  • 0
    @ 2026-8-10 14:49:16
    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main(){
    	int n;
    	cin >> n;
    	
    	int a[n][n];
    	memset(a,0,sizeof(a));
    	int x=0,y=n/2;
    	for(int i=1;i <= n*n;i++){
    		a[x][y] = i;
    		if(a[(x-1+n)%n][(y+1+n)%n] == 0){
    			x--;
    			y++;
    		}
    		else x++;
    		
    		if(x >= n) x -= n;
    		if(x < 0) x += n;
    		if(y >= n) y -= n;
    		if(y < 0) y += n;
    	}
    	
    	for(int i=0;i < n;i++){
    		for(int j=0;j < n;j++){
    			cout << a[i][j] << ' ';
    		}
    		cout << endl;
    	}
    	
    	return 0;
    }
    
    • 1

    信息

    ID
    6768
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    75
    已通过
    40
    上传者