• 基础练习 回形取数


    问题描述
      回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
    输入格式
      输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
    输出格式
      输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
    样例输入
    3 3
    1 2 3
    4 5 6
    7 8 9
    样例输出
    1 4 7 8 9 6 3 2 5
    样例输入
    3 2
    1 2
    3 4
    5 6
    样例输出
    1 3 5 6 4 2
     1 import java.util.Scanner;  
     2       
     3     public class Main{   
     4         public static void main(String[] args) {
     5             int n,m;
     6             Scanner input = new Scanner(System.in);
     7             n = input.nextInt();
     8             m = input.nextInt();
     9             int[][] a= new int[n][m];
    10             for(int i=0;i<n;i++){
    11                 for(int j=0;j<m;j++){
    12                     a[i][j] = input.nextInt();
    13                 }
    14             }
    15             int i=0,j=0;
    16             int n1 = n;
    17             int m1 = m;
    18             int h = 0;
    19             int k = 1;
    20             if(n!=1){
    21                 i = 1;
    22                 System.out.print(a[0][0]);
    23             }
    24             else{
    25                 System.out.print(a[0][0]);
    26                 j = 1;
    27             }
    28                 
    29             while(true){
    30                 while(i<n1-1){
    31                     System.out.print(" "+a[i][j]);
    32                     k++;
    33                     i++;
    34                 }
    35                 if(k==n*m-1||k==n*m){
    36                     break;
    37                 }
    38                 while(j<m1-1){
    39                     System.out.print(" "+a[i][j]);
    40                     k++;
    41                     j++;
    42                 }
    43                 if(k==n*m-1||k==n*m){
    44                     break;
    45                 }
    46                 while(i>h){
    47                     System.out.print(" "+a[i][j]);
    48                     k++;
    49                     i--;
    50                 }
    51                 if(k==n*m-1||k==n*m){
    52                     break;
    53                 }
    54                 while(j>h+1){
    55                     System.out.print(" "+a[i][j]);
    56                     k++;
    57                     j--;
    58                 }
    59                 if(k==n*m-1||k==n*m){
    60                     break;
    61                 }
    62                 h++;
    63                 n1--;
    64                 m1--;
    65             }
    66             if(k==n*m-1)
    67                 System.out.print(" "+a[i][j]);
    68         }
    69     
    70  }  
  • 相关阅读:
    jquery操作select(取值,设置选中)
    POST 服务测试PHP页面
    Web开发者不容错过的20段CSS代码(二)
    Web开发者不容错过的20段CSS代码(一)
    Word排版技巧
    需求分析的故事——如何练就需求分析的火眼金晴?
    如何来书写需求说明书
    Struts配置文件阐释
    做需求要会问为什么和需求场景
    跑通并调试第一个Java Struts程序
  • 原文地址:https://www.cnblogs.com/lolybj/p/6496176.html
Copyright © 2020-2023  润新知