7 条题解

  • 0
    @ 2024-4-11 14:22:17

    #include<bits/stdc++.h> using namespace std; typedef long long ll; #define endl '\n'

    int main() { int m,n; scanf("%d %d",&m,&n); int dir=1; vector<vector<int>> arr(m,vector<int>(n)); // int arr[100][100]; int x,y,bound_x,bound_y; bound_x=m; bound_y=n; x = 0; y = n-1; int cir = 0; for(int cnt=1;cnt<=m*n;cnt++) {

    if(dir==1)
    	{
    		arr[x][y] = cnt;
    		x++;
    		if(x == (bound_x-cir))
    		{
    			dir = 2;
    			x--;
    			y--;
    		}
    	}
    	else if(dir==2)
    	{
    		arr[x][y] = cnt;
    		y--;
    		if(y == (cir-1))
    		{
    			dir = 3;
    			y++;
    			x--;
    		}
    	}
    	else if(dir==3)
    	{
    		arr[x][y] = cnt;
    		x--;
    		if(x == (cir -1))
    		{
    			dir =4;
    			x++;
    			y++;
    		}
    	}
    	else if(dir ==4 )
    	{
    		arr[x][y] = cnt;
    		y++;
    		if(y == (n-cir-1)) 
    		{
    			dir = 1;
    			y--;x++;
    			cir++;
    		}
    	}
    }
    for(int i = 0; i < m;i++)
    {
    	for(int j = 0;j < n;j++)
    	{
    		printf("%5d",arr[i][j]);
    	}
    	cout<<endl;
    }
    
    return 0;
    

    }

    信息

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