文章

20

粉丝

0

获赞

68

访问

2.2k

头像
旋转方阵 题解:

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

int res[22][22];

int main(){
    int n;
    cin >> n;
    int mx[] = {1, 0, -1, 0};
    int my[] = {0, 1, 0, -1};
    int k = 1, f = 0;
    int x = 1, y = 1;

//  方阵周围,围一圈非零数字,碰到了就转向
    for(int i = 1; i <= n; i++){
        res[n+1][i] = 1;
    }
    for(int i = 1; i <= n; i++){
        res[i][n+1] = 1;
    }
    for(int i = 1; i <= n; i++){
        res[0][i] = 1;
    }

//
    while(k <= n*n){
        res[x][y] = k++;
        if(res[x+mx[f]][y+my[f]] != 0){
            f = (f+1) % 4;
  ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发