回形取数

Java实现 蓝桥杯VIP 基础练习 回形取数 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3 4 5 6 7... 阅读详情
问题描述
  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转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

import java.util.Scanner;

public class Main {
	public static int m = 0;
	public static int n = 0;
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		m = sc.nextInt();
		n = sc.nextInt();
		
		int[][] a = new int[m][n];
		for(int i = 0 ; i < m ; i++){
			for(int j = 0 ; j < n ; j++){
				a[i][j] = sc.nextInt();
			}
		}
		if(m==1&& n==1)System.out.println(a[0][0]);
		else
			getNum(0, 0, a);
		
	}
	
	public static void getNum(int p,int q,int[][] a){
		if(p>=m-p||q>=n-q)
			return;
		
		
		int i = p ;
		int j = q;
		while(i <m-p-1 )
			System.out.print(a[i++][j]+" ");
		int flag1 = 0;
		while(j<n-q-1){
			flag1++;
			System.out.print(a[i][j++]+" ");
		}
		int flag = 0 ;
		while(i>p){
			if(flag1==0){
				flag++;
				System.out.print(a[i][j]+" ");
				break;
			}
			flag++;
			System.out.print(a[i--][j]+" ");
		}
		
		while(j>q){
			if(flag == 0){
				System.out.print(a[i][j]+" ");
				break;
			}
			System.out.print(a[i][j--]+" ");	
			
			
		}
			
		getNum(p+1, q+1, a);
		
	}

}
会有一两个超时。哭
搜别人的贴上去也是超时。
蓝桥杯——回形取数 模拟 阅读详情

相关推荐

蓝桥杯C/C++VIP试题每日一练之回形取数

蓝桥杯每日一练第二十二天报时助手。

静Yu的博客 6943

【Java】回形数

回形数 键盘读入一个整数n(1-20),以n为矩阵大小,把1,2,3,4,5…按顺时针螺旋的形式填入。 import java.util.Scanner; public class HuiXingShu { public static void main(String[] args) { System.out.print("请输入一个整数:"); int lenth; Scanner scanner = new Scanner(System.in); lenth = scanner.n

Ekertree的博客 1614

蓝桥杯 java 回形取数

import java.util.Scanner; public class Main { public static void main(String[] args) { int a[][],b[],c[]; Scanner reader=new Scanner(System.in); int n,m; n=reader.nextInt(); m=reader.nextInt(); a=new int[n+2][m+2]; b=new int[4]; c=new int[4]; for(int i=0;i<n+2;i++) for(int j=0;j<m+2;j++) { if(i==0||i==n+1||j==0||j==m+1) a[i][j]='#'; else a[i][j]=reader.nextInt(); } b[0]=1;b[1]=0;b[2]=-1;b[3]=0; c[0]=0;c[1]=1;c[2]=0;c[3]=-1; int i=1,j=1,k=0,count=0; while(count!=m*n) { if(a[i][j]!='#') { System.out.printf("%d ", a[i][j]); a[i][j]='#'; count++; i+=b[k];j+=c[k]; } else { if(k==0) { i--;k=1; j+=c[k]; } else if(k==1) { j--;k=2; i+=b[k]; } else if(k==2) { i++;k=3; j+=c[k]; } else { j++;k=0; i+=b[k]; } } } } }

java回型数组【思路清晰版】

玩转回型数组,四个边的值可任意定义

C3245073527的博客 1777

海康VisionMaster全局通信实战:从数据接收到流程触发

本文详细解析了海康VisionMaster全局通信的实战应用,重点阐述了如何通过配置通信模块与编写全局脚本,实现从外部设备(如PLC)接收数据并触发内部视觉流程。文章以TCP/IP通信为例,深入讲解了数据接收、解析、全局变量设置及流程触发的核心代码与调试技巧,帮助用户打通自动化项目中的设备联动关键环节。

weixin_29295541的博客 570

欧姆龙485通讯示例程序_【精品实验】PLC学习神器与温湿度变送器的通讯

BFH点击蓝字关注我们↑↑↑↑  PLC学习神器提供RS485接口,可支持无协议RS指令、无协议RS2指令、Modbus通讯功能,可通过设置通讯格式改变通讯协议,RS485对应的通讯格式地址是D8400;  本案例以RS485接口与温湿度变送器通讯,通讯格式如下一温湿度变送器的说明书介绍1.1主要技术参数1.2 通讯协议 1、所有通讯回路都应遵照主/从方式。依照主从方式,数据可以在一个主...

weixin_39860201的博客 1万+

java,实现回形数输出

可以分为4部分:【上、右、下、左】,把最外层的螺旋规律摸清,内层螺旋规律同理。只要找到顺时针方向的行号和列号,依次赋值即可。比如输入3,则输出为。比如输入4,则输出为。

wytccc的博客 665

Python:同花顺全数据接口

# -*- coding: utf-8 -*- from iFinDPy import * from datetime import datetime import pandas as pd import time as _time import json from threading import Thread,Lock,Semaphore import requests sem = Semaphore(5) # 此变量用于控制最大并发数 dllock = Lock() #此变量用来控制实时行情推

代码过客 4万+

Java,回形数

3.每次赋值到终点时,以第一次为例,最后还有一个j++,j会变为5,而接下来的向下应该时要保持j为4才行,j为5时会数组访问越界。所以要在后面的换方向的if里面加上一个j--,中和掉多余加出来的1.1.count是用来计算赋值的次数的,左右方向上,当赋值次数等于剩余列数时,就换方向。用不同的四个分支分别表示向右向下向左向上,假如i表示数组的行数,j表示数组的列数,向右向左就是控制j的加减,向上向下就是控制i的加减。2.换方向时,要把赋值的起点换一下,每次换起点都是让赋值对象变为下一个方向的下一个元素。

二狗mao的博客 581

好书分享:Control and Estimation with MATLAB(5th Edition)pdf

基于MATLAB的控制与估计》(第5版)由八章组成,包括控制算法和设计。主要内容包括状态估计和数据平滑、RLS和卡尔曼滤波器状态估计、控制系统设计、自适应控制和PID。书中的概念已经使用MATLAB和Simulink实现。提供了可下载的MATLAB和Simulink文件。适合人群:大学生、研究生、控制类工程研究人员。需要电子版pdf,回复索取。

jixianhu的博客 1511

数据服务:数据服务框架Magic-API 介绍及实践

接口快速开发框架 基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 。在线页面快速开发平台 基于 vue 的在线页面快速开发平台,主要把所有的 vue 代码都改为在线配置,最终获得一个 json 格式的页面新一代爬虫平台 基于Java实现的新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。今天给大家安利一

GIS摆渡人 2063

基础练习 回形取数

解题思路:

lijy94的专栏 2995

8.9华为OD机试真题 新系统 - 查找最佳充电策略 (Java/Py/C/C++/Js/Go)

8.9华为OD机试真题 新系统 - 查找最佳充电策略 (Java/Py/C/C++/Js/Go)

算法大师! 1172

c语言 回形取数

回形取数 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2 3 4 ...

baobaohui 2504

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息

CAPL通过lookupSignal和DBLookup获取DBC信号的属性信息以及一些相关问题

天赐好车的博客 2891

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

回形取数(c语言)

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

weixin_53535434的博客 3300

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蓝桥杯的回形取数(C语言)

题目 说明 代码及注释题目问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入

我们的时光 8617

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

回形取数(蓝桥杯)

回形取数 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。 样例输入 3 3 1 2...

2250

回形取数 c++

c++实现回形取数

weixin_73929590的博客 1125

试题 基础练习 回形取数

试题 基础练习 回形取数 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式   输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出格式   输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之...

c_messi的博客 1480

[蓝桥杯]回形取数

[蓝桥杯][基础练习VIP]回形取数 时间限制: 1Sec 内存限制: 128MB 提交: 493 解决: 139 题目描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。 输出 输出只有一行,共mn个数,为输入矩阵回形取数得到...

DanBo_C的博客 1289
上一篇: 欧几里得算法
下一篇: 报时助手
jeffery0628
博客等级 码龄11年 39粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值