文章

5

粉丝

0

获赞

0

访问

78

头像
旋转方阵 题解:

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

int main(){
    //构造二维数组
    int n;
    scanf("%d",&n);
    if(n<1||n>20) return 0;
    if(n==1){
        printf("1");
        return 0;
    }
    //沿着外沿赋值,沿左下右上的顺序
    int s[20][20]={0};
    int a=0,b=n-1,c=n-1,d=0,m=1;//初始化,a b c d对应左 下 右 上
    while(d+1<n){

    for(int i=a;i<=b;i++){//a
        s[i][a]=m;
        m++;
    }
    a++;
    for(int i=a;i<=c;i++){//b
        s[b][i]=m;
        m++;
    }
    b--;
    for(int i=b;i>=d;i--){//c
        s[i][c]=m;
        m++;
    }
    c--;
    for(int i=c;i&...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发