文章

25

粉丝

0

获赞

208

访问

4.8k

头像
旋转方阵 题解:

#include<bits/stdc++.h>
using namespace std;

int a[25][25];

int main(){
    int n;
    // 下右上左
    int dy[4] = {0,1,0,-1};
    int dx[4] = {1,0,-1,0};
    int x = 1,y = 1;
    cin >> n;
    int cnt = 1;
    int dir = 0;

    while(cnt <= n * n){
        a[x][y] = cnt++;
        int nx = x + dx[dir];
        int ny = y + dy[dir];

        if(nx < 1 || nx > n || ny > n || a[nx][ny] != 0){
            dir = (dir + 1) % 4;
            nx = x + dx[dir];
            ny = y + dy[dir];
        }
        
        x = nx;
        y = ny;
    }

    for(int i = 1; i <= n; i++){...

登录查看完整内容


登录后发布评论

1 条评论
itachi
2026年3月11日 20:31

多谢指教

赞(0)
回复给: