zoukankan      html  css  js  c++  java
  • [蓝桥杯][基础训练]回形取数

    Description

    回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。

    Input

    输入第一行是两个均不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
    

    Output

    输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
    

    Sample Input

    3 3
    1 2 3
    4 5 6
    7 8 9
    

    Sample Output

    1 4 7 8 9 6 3 2 5
    


     1 #include<stdio.h>
     2 int book[201][201];//用来标记走过的路 
     3 int main(){
     4     int dir[4][2]={1,0,0,1,-1,0,0,-1};//用于转向的数组 
     5     int n,m;//行,列 
     6     int map[201][201];//存储地图信息 
     7     int dx=0,dy=1;//出发点 
     8     int k=0;//与转向数组一起用 
     9     scanf("%d%d",&n,&m);
    10     int num=n*m,sum=0;//num表示一共要输出这么多的数
    11                       //sum表示当前一共输出了多少数 
    12     for(int i=1;i<=n;i++){
    13         for(int j=1;j<=m;j++){
    14             scanf("%d",&map[i][j]);
    15         }
    16     }
    17     while(1){//一直进行,输出数字的量达到num才停止 
    18         dx+=dir[k%4][0];//开始走 
    19         dy+=dir[k%4][1];
    20         if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&!book[dx][dy]){
    21         //如果还在地图里,并且这里没有走过 
    22             printf("%d",map[dx][dy]);//就输出这里的数 
    23             sum++;//输出数量加一 
    24             if(sum==num)//达到数的总量后,跳出循环 
    25                 break;
    26             else    //如果没达到总量
    27             printf(" "); //就输出空格
    28                 //因为最后一个数字后不能加空格,所以这样输出空格 
    29             book[dx][dy]=1;//输出后标记 
    30         }
    31         else{//如果dxdy不符合条件了 
    32             dx-=dir[k%4][0];//就退回原来的地方 
    33             dy-=dir[k%4][1];
    34             k++;//k自增,这时转向数组发挥作用,开始转向 
    35         }
    36     }
    37     return 0;
    38 }

     



    这个还算简洁吧,顺时针逆时针都可以,起点也可以选,以后这样的题就这样写了

  • 相关阅读:
    SQLite打开提示database disk image is malformed
    windows查看端口占用
    新浪SAE使用Thinkphp框架,禁用memcache节省豆子的方法
    Realtek 8168 安装 VMware ESXi 提示没有驱动
    13年国庆彩蛋
    Flex使用宋体渲染越南语显示错误
    微信 编码要UTF8
    WeiXin 验证成为开发者和更换服务器验证代码
    测试网络连通情况
    废弃sqlite代码,备查
  • 原文地址:https://www.cnblogs.com/fate-/p/12266740.html
Copyright © 2011-2022 走看看