Java_对数据外螺旋方式排列
来源:互联网 发布:linux提升用户为root 编辑:程序博客网 时间:2024/06/05 05:06
本博客为子墨原创,转载请注明出处!
http://blog.csdn.net/zimo2013/article/details/8875583
要求:从自然数1开始,从里向外螺旋方式排列,并在最外层包上一层星号
例如:输入n=3
输入n=4:
/*昨天下午写了很长时间都没有写好,主要还是思路混乱。睡觉的时候思路才慢慢清晰,今天测试才符合要求!Strawberry2013-5-2*/import javax.swing.JOptionPane;class Demo{private static int MAX_N = 10;//支持最大自然数为20public static void main(String[] args){int[][] val = new int[MAX_N][MAX_N];int n = getNumber("请输入自然数N");//获取自然数Nif(n<=MAX_N && n>=1)//判断自然数N的有效范围{if(n%2 == 1)exec(val, 0, n-1, n);elseexec(val, n-1, 0, n);}show(val, n);}public static void exec(int[][] val, int m, int n, int len){int i, key;//exec(val, m, n, len) ->m,n分别代表目标点的横纵坐标 len表示该目标运动的长度;if (len%2 == 0)key = 1;//判断运动的方向 key=1表示向右或者向上 key=-1表示相反方向elsekey = -1;for(i=0; i <= len-1; i++){val[m][n+key*i] = len*len - i;}int temp = val[m][n+key*(len-1)];//存储拐点的val值for(i=0; i<=len-1; i++){val[m-key*i][n+key*(len-1)] = temp - i;}if (len == 1)return;exec(val, m-key*(len-1), n+key*(len-2), len-1);}public static void show(int[][] val, int n)//打印信息{for(int i=0; i<n; i++){for(int j=0; j<n; j++){if(val[i][j] != 0)System.out.print(val[i][j]+"\t");}System.out.println("\n");}}public static int getNumber(String message)//获取自然数n值{int number = 0;String str = JOptionPane.showInputDialog(null, message, "提示",JOptionPane.INFORMATION_MESSAGE);try{number = Integer.parseInt(str); // 得到输入的正整数}catch( Exception e){JOptionPane.showMessageDialog(null, "输入非数字字符\n程序结束", "错误警告", JOptionPane.ERROR_MESSAGE);return -1; // 输入的不是数字字符,程序结束}if (number < 1 || number > MAX_N){JOptionPane.showMessageDialog(null, "自然数N范围为:1-"+MAX_N+"\n程序结束", "错误警告",JOptionPane.ERROR_MESSAGE);return -1; // 输入的数不在范围,程序结束 } else return number;}}
- Java_对数据外螺旋方式排列
- java_螺旋方阵
- java_读取文件并对数据进行排序并写出
- 算法-数组:螺旋数字排列
- 打印螺旋排列的数字
- 打印螺旋排列的数字
- Vc++螺旋对列
- 螺旋搜索方式
- java 螺旋数据矩阵
- 四对括号可以有多少种匹配排列方式?
- 四对括号可以有多少种匹配排列方式?
- 四对括号可以有多少种匹配排列方式
- N对括号可以有多少种匹配排列方式
- n对括号有多少种匹配排列方式
- 关于数组螺旋排列的问题探讨
- 一个解决数字螺旋排列的程序
- 递归:求螺旋排列数字的矩阵
- 矩阵的螺旋排列 Python实现
- The Picture of Dorian Gray——13
- PAI注解 生成数据库是出现Could not load an Entity(......) 上图说明
- 四种常用最短路径算法模板
- 获取当前路径及写入excel
- FAR非暴力破解
- Java_对数据外螺旋方式排列
- Ubuntu 安装mate desktop environment.
- Hadoop操作HDFS命令
- 关于MFC中GetLastError函数返回值的含义(仅供参考)
- C++ hash_map
- 读取配置文件 某节点值
- sigsuspend()函数作用详解
- 《Linux内核编程》第十章:Linux内核态的进程上下文
- 磁盘IO