1 条题解

  • 0
    @ 2024-11-12 19:48:19
    #include<iostream>
    using namespace std;
    int cube[40][40];
    int main(){
    	int n,mid;
    	cin>>n;
    	mid=(n+1)/2;
    	cube[0][mid-1]=1;
    	int x=0,y=mid-1;//x=hang y=lie
    	for(int i=2;i<=n*n;i++){
    		if(x==0&&y!=n-1){
    			cube[n-1][y+1]=i;
    			x=n-1;
    			y+=1;
    		}else if(y==n-1&&x!=0){
    			cube[x-1][0]=i;
    			x-=1;
    			y=0;
    		}else if(x==0&&y==n-1){
    			cube[x+1][y]=i;
    			x+=1;
    		}else if(x!=0&&y!=n-1&&cube[x-1][y+1]==0){
    			cube[x-1][y+1]=i;
    			x-=1;
    			y+=1;
    		}else if(x!=0&&y!=n-1&&cube[x-1][y+1]!=0){
    			cube[x+1][y]=i;
    			x+=1;
    		}
    	}
    	for(int i=0;i<n;i++){
    		for(int j=0;j<n;j++){
    			cout<<cube[i][j]<<' ';
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    

    很好的一道模拟题

    信息

    ID
    474
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    22
    已通过
    19
    上传者