10分告急!!!!求调,玄关。外旋矩阵
  • 板块题目总版
  • 楼主Mumu24
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/29 14:56
  • 上次更新2024/8/29 17:11:02
查看原帖
10分告急!!!!求调,玄关。外旋矩阵
1391678
Mumu24楼主2024/8/29 14:56
using namespace std;  

const int MAXN = 10005;  

int main() {  
    int n, m, r, c;  
    
    cin >> n >> m;  
   
    cin >> r >> c;  

    int dx[4] = {0, +1, 0, -1}; 
    int dy[4] = {+1, 0, -1, 0};  
    int a[MAXN][MAXN] = {0}; 

    
    int num = 1;  
    a[r][c] = num;  

    int x = r, y = c;  
    int cnt = 1; 

    while (num < n * m) {  
        for (int k = 0; k < 4; k++) {  
            int len = (cnt - 1) / 2 + 1;
            for (int l = 1; l <= len; l++) {  
                
                x += dx[k];  
                y += dy[k];  

               
                if (x >= 1 && x <= n && y >= 1 && y <= m) {  
                    ++num;  
                    a[x][y] = num; 
                }  
            }  
            ++cnt; 
        }  
    }  

   
    
    for (int i = 1; i <= n; i++) {  
        for (int j = 1; j <= m; j++) {  
            cout << a[i][j] ; 
        }  
        cout << endl;  
    }  

    return 0;  
}
2024/8/29 14:56
加载中...