7 条题解

  • 0
    @ 2024-4-14 21:33:25
    #include <cstdio>
    #include <cmath>
    #include<iostream>
    using namespace std;
    int a[200][200];
    int flag[200][200];
    int main(){
    	int m,n;
    	cin>>m>>n;
    	int x=n,y=1;
    	int count=1;
    	
    	int num=1;
    	while(num<=n*m){
    		while(y<=m&&flag[x][y]!=1&&num<=n*m){
    			flag[x][y]=1;
    			a[x][y]=num;
    			num++;
    			y++;
    		}
    		x--;
    		y--;
    		while(x>=1&&flag[x][y]!=1&&num<=n*m){
    			flag[x][y]=1;
    			a[x][y]=num;
    			num++;
    			x--;
    		}
    		x++;
    		y--;
    		while(y>=1&&flag[x][y]!=1&&num<=n*m){
    			flag[x][y]=1;
    			a[x][y]=num;
    			num++;
    			y--;
    		}
    		y++;
    		x++;
    		while(x<=n&&flag[x][y]!=1&&num<=n*m){
    			flag[x][y]=1;
    			a[x][y]=num;
    			num++;
    			x++;
    		}
    		x--;
    		y++;
    		
    	}
    	for(int i=1;i<=m;++i){
    		for(int j=1;j<=n;++j){
    			printf("%5d",a[j][i]);
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    
    

    信息

    ID
    78
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    682
    已通过
    175
    上传者