描述:

在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水题-----蛇形填数相关推荐

  1. 南阳oj入门题-蛇形填数

    /** 蛇形填数 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.例如n=4时方陈为: 10 11 12 1 9 16 ...

  2. 蓝桥杯真题——蛇形填数(c语言)

    目录 一.题目描述 二.解题思路 三.程序操作 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如下图所示,小明用从 1 开始的正整数"蛇形" ...

  3. 第十一届蓝桥杯大赛省赛真题-填空题-蛇形填数(Java实现)

    试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...

  4. 计算机精英协会考核题 —— 第二题:蛇形填数

    题目 2.蛇形填数 给出 n * n 方阵,要求从 1 开始按顺序依次填写,填写方式如下: n = 4 时, 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13 输入 n,请 ...

  5. 2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数

    2020年第十一届蓝桥杯 - 省赛 - C/C++大学生A组 - C.蛇形填数 Ideas 这题其实严格意义上属于一道找规律的题目,并不是啥算法题. 我们可以先按照它的规律多写几行. 1 2 6 7 ...

  6. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - D.蛇形填数

    这道题同样还是: 2020年第十一届蓝桥杯 - 省赛 - C/C++研究生组 - D.蛇形填数 2020年第十一届蓝桥杯 - 省赛 - Java研究生组 - D.蛇形填数 Ideas 这题其实严格意义 ...

  7. 第十一届蓝桥杯A组省赛填空试题 C: 蛇形填数(Java)

    试题 C: 蛇形填数 本题总分:10 分 [问题描述] 如下图所示,小明用从 1 开始的正整数"蛇形"填充无限大的矩阵. 容易看出矩阵第二行第二列中的数是 5.请你计算矩阵中第 2 ...

  8. 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的值.( ...

  9. 信息学奥赛一本通 2045:【例5.13】蛇形填数

    [题目链接] ybt 2045:[例5.13]蛇形填数 [题目考点] 1. 二维数组 2. 方向数组(可能用到) int dir[4][2] = {{1,0},{0,-1},{-1,0},{0,1}} ...

  10. 信息学奥赛一本通(2045:【例5.13】蛇形填数)

    2045:[例5.13]蛇形填数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 374     通过数: 191 [题目描述] 在n×nn×n方阵里填入1,2,3 ...

最新文章

  1. 独立服务器和虚拟服务器的区别,BlueHost虚拟主机与独立服务器的主要区别
  2. 华为nova3android,华为nova3和3i哪个好 华为nova3i和nova3区别对比
  3. php----http协议 Cookie
  4. 【效率】这个神器可以摆脱变量命名纠结!
  5. AQS源码阅读笔记(一)
  6. C# 如何 保存对config文件的修改
  7. maven仓库--私服(Nexus的配置使用)
  8. arm搭建云手机教程_云计算培训教程学习路线视频源码课件:seafile私有网盘搭建...
  9. maven错误相关(整理中)
  10. cachecloud部署和创建机器
  11. 记录win10无法通过IE浏览器设置受信任的站点的几种方法
  12. 脸谱网下载_脸谱网对AR眼镜大胆愿景的最大障碍是信任
  13. 大数据hadoop分布式系统
  14. 全职ui设计师岗位需要具备哪些工作技能
  15. 鸟哥的Linux私房菜基础篇笔记--8
  16. [原创]京东技术解密读书笔记
  17. 同一台服务器上安装mysql5.5和mysql5.7 不同版本的实例
  18. BUU LFI COURSE 1 WP
  19. QNX下音频解码器SGTL5000驱动的调试
  20. 6-4 输出月份英文名 (15分)

热门文章

  1. 动态规划之二项式系数
  2. 职高计算机应用基础教学目标,职高计算机应用基础教法初探.doc
  3. Quantile g-computation的介绍及R实现
  4. BeagleBone Black 从零到一 (2 MLO、U-Boot) 转
  5. Python OS模块操作文件目录
  6. 坚持#第235天~哎呀,最近培训云计算忙得都把写博客的大事给忘了,赶快捡起来
  7. 股权-公司治理的至高点,如何合理运用股权(融人、融资、融市场) 张明若
  8. 中国移动“梧桐杯”大数据应用创新大赛智慧金融初赛TOP1开源
  9. MTK 6737 Flash配置
  10. Unity_检测颜色相似度