OJ水题-----蛇形填数
描述:
在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方阵为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
输入:直接输入方陈的维数,即n的值。(n<=100)
输出:输出结果是蛇形方陈。
输入数据:
3
输出数据:
7 8 1
6 9 2
5 4 3
/***************************************************************************/
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[][] arr = new int[n][n];for(int i=0;i<n;i++){for(int z=0;z<n;z++){arr[i][z] = 0;}}int number = 1;Direction d = Direction.down;int x=0;int y=n-1;while(number < n*n){if(d == Direction.down){if(x == n-1 || arr[x+1][y] != 0){d = Direction.left;}else{arr[x][y]= number;number ++ ;x++;}}if(d == Direction.left){if(y==0 || arr[x][y-1] != 0){d = Direction.up;}else{arr[x][y]= number;number ++ ;y--;}}if(d == Direction.up){if(x == 0 || arr[x-1][y] != 0){d = Direction.right;}else{arr[x][y]= number;number ++ ;x--;}}if(d == Direction.right){if(y == n-1 || arr[x][y+1] !=0){d = Direction.down;}else{arr[x][y]= number;number ++ ;y++;}}}for(int i=0;i<n;i++){for(int z=0;z<n;z++){if(arr[i][z] == 0){arr[i][z] = n*n;}System.out.print(arr[i][z]+" ");}System.out.println();}}
}enum Direction{down,left,up,right
}
只要存数字时按照方向来就存就行了,如果到边界或者下一个有数字了就让他转向存.这里有个问题,如果把最后一个数字也在循环里面放进去的话 就进入无限循环了..不知道怎么跳出,干脆就在输出的时候把这个数字替换掉了...
转载于:https://my.oschina.net/u/2358837/blog/417156
OJ水题-----蛇形填数相关推荐
- 南阳oj入门题-蛇形填数
/** 蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 ...
- 蓝桥杯真题——蛇形填数(c语言)
目录 一.题目描述 二.解题思路 三.程序操作 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如下图所示,小明用从 1 开始的正整数"蛇形" ...
- 第十一届蓝桥杯大赛省赛真题-填空题-蛇形填数(Java实现)
试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...
- 计算机精英协会考核题 —— 第二题:蛇形填数
题目 2.蛇形填数 给出 n * n 方阵,要求从 1 开始按顺序依次填写,填写方式如下: n = 4 时, 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13 输入 n,请 ...
- 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数
2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数 Ideas 这题其实严格意义上属于一道找规律的题目,并不是啥算法题. 我们可以先按照它的规律多写几行. 1 2 6 7 ...
- 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数
这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...
- 第十一届蓝桥杯A组省赛填空试题 C: 蛇形填数(Java)
试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...
- C语言(24)蛇形填数
描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入 直接输入方陈的维数,即n的值.( ...
- 信息学奥赛一本通 2045:【例5.13】蛇形填数
[题目链接] ybt 2045:[例5.13]蛇形填数 [题目考点] 1. 二维数组 2. 方向数组(可能用到) int dir[4][2] = {{1,0},{0,-1},{-1,0},{0,1}} ...
- 信息学奥赛一本通(2045:【例5.13】蛇形填数)
2045:[例5.13]蛇形填数 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 374 通过数: 191 [题目描述] 在n×nn×n方阵里填入1,2,3 ...
最新文章
- 独立服务器和虚拟服务器的区别,BlueHost虚拟主机与独立服务器的主要区别
- 华为nova3android,华为nova3和3i哪个好 华为nova3i和nova3区别对比
- php----http协议 Cookie
- 【效率】这个神器可以摆脱变量命名纠结!
- AQS源码阅读笔记(一)
- C# 如何 保存对config文件的修改
- maven仓库--私服(Nexus的配置使用)
- arm搭建云手机教程_云计算培训教程学习路线视频源码课件:seafile私有网盘搭建...
- maven错误相关(整理中)
- cachecloud部署和创建机器
- 记录win10无法通过IE浏览器设置受信任的站点的几种方法
- 脸谱网下载_脸谱网对AR眼镜大胆愿景的最大障碍是信任
- 大数据hadoop分布式系统
- 全职ui设计师岗位需要具备哪些工作技能
- 鸟哥的Linux私房菜基础篇笔记--8
- [原创]京东技术解密读书笔记
- 同一台服务器上安装mysql5.5和mysql5.7 不同版本的实例
- BUU LFI COURSE 1 WP
- QNX下音频解码器SGTL5000驱动的调试
- 6-4 输出月份英文名 (15分)
热门文章
- 动态规划之二项式系数
- 职高计算机应用基础教学目标,职高计算机应用基础教法初探.doc
- Quantile g-computation的介绍及R实现
- BeagleBone Black 从零到一 (2 MLO、U-Boot) 转
- Python OS模块操作文件目录
- 坚持#第235天~哎呀,最近培训云计算忙得都把写博客的大事给忘了,赶快捡起来
- 股权-公司治理的至高点,如何合理运用股权(融人、融资、融市场) 张明若
- 中国移动“梧桐杯”大数据应用创新大赛智慧金融初赛TOP1开源
- MTK 6737 Flash配置
- Unity_检测颜色相似度