zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯VIP 基础练习 回形取数

    问题描述
      回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转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

    package 蓝桥杯VIP;
    
    import java.util.Scanner;
    
    public class 回形取数2 {
    
    	static int k[][];
    	public static void main(String args[])
    	{
    		Scanner cn=new Scanner(System.in);
    		
    		int q=cn.nextInt();
    		int w=cn.nextInt();
    		k=new int[q+1][w+1];
    		for(int i=1;i<=q;i++)
    			for(int j=1;j<=w;j++)
    				k[i][j]=cn.nextInt();
    		
    		String str="";
    		int a=1,i=0,x=1,y=1;
    		while(true)
    		{
    			if(i==q*w)break;
    			str=str+k[x][y]+" ";
    			i++;x++;
    			
    			while(x<=q-a)
    			{
    				str=str+k[x][y]+" ";
    				i++;x++;
    			}
    			if(i==q*w)break;
    			str=str+k[x][y]+" ";
    			y++;i++;
    			
    			while(y<=w-a)
    			{
    				str=str+k[x][y]+" ";
    				i++;y++;
    			}
    			if(i==q*w)break;
    			 str=str+k[x][y]+" ";
    			  i++;x--;
    			while(x>a)
    			{
    				str=str+k[x][y]+" ";
    				i++;x--;
    			}
    			if(i==q*w)break;
    			 str=str+k[x][y]+" ";
    			 i++;y--;
    			while(y>a+1)
    			{
    				str=str+k[x][y]+" ";
    				i++;y--;
    			}
    			a++;
    		}
    		
    	for(int c=0;c<str.length()-1;c++)
    		System.out.print(str.charAt(c));
    	}
    
    }
    
    

    原文:https://blog.csdn.net/yiyuan_chen/article/details/56671967

  • 相关阅读:
    系统学习前端
    电脑上的图标拖不动
    js 给 input的value赋值
    js forEach的坑
    h5兼容性问题总结
    行内元素与块级元素
    百度搜索指令
    微信h5监听页面显示隐藏
    跨浏览器事件处理函数
    鼠标事件分析(onmouseenter、onmouseover、onmouseleave和onmouoseout的区别)
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948650.html
Copyright © 2011-2022 走看看