趣味算法
来源:互联网 发布:淘宝宝贝拍照 编辑:程序博客网 时间:2024/04/30 07:57
1234
5678
90ab
cdef
要求输出12348bfedc9567a0
考虑一个蚂蚁,它当前坐标x,y,它的运动方向,4个。每次撞到墙,右转,当前状态下的4面墙...........
- public class TEST2
- {
- public static void main(String[] args) {
- char[][] all = {
- {'1','2','3','4'},
- {'5','6','7','8'},
- {'9','0','a','b'},
- {'c','d','e','f'},
- };
- StringBuffer result = new StringBuffer();
- int sept = 1; //蚂蚁的移动方向,右和下是1,左和上是-1
- int x = 0; //蚂蚁的坐标
- int y = 0; //蚂蚁的坐标
- int xMax = all[0].length;//蚂蚁的移动范围
- int xMin = 0; //蚂蚁的移动范围
- int yMax = all.length; //蚂蚁的移动范围
- int yMin = 0; //蚂蚁的移动范围
- boolean isRow = true; //横向还是纵向移动
- for(int i=0; i<all[0].length*all.length; i++){
- if(isRow){
- result.append(all[y][x]);
- if(x+sept < xMax && x+sept >= xMin){ //在横向范围内则x坐标+或-1
- x += sept;
- }else{
- if(sept == 1){ //否则纵坐标+或-1
- yMin += 1;
- }else{
- yMax -= 1;
- }
- y += sept; //避免角上的重复走
- isRow = false; //变向
- }
- }else{
- result.append(all[y][x]);
- if(y+sept < yMax && y+sept >= yMin){
- y += sept;
- }else{
- if(sept == 1){
- xMax -= 1;
- }else{
- xMin += 1;
- }
- isRow = true;
- sept = -sept;
- x += sept;
- }
- }
- }
- System.out.println(result.toString());
- }
- }
或者
- public class TEST2
- {
- public static void main(String[] args) {
- char[][] chars = {
- {'1','2','3','4'},
- {'5','6','7','8'},
- {'9','0','a','b'},
- {'c','d','e','f'}};
- int columnNum = chars[0].length;
- int rowNum = chars.length;
- printCharArray(rowNum, columnNum, chars);
- }
- private static void printCharArray(int rowNum, int columnNum, char[][] chars) {
- //print the first row of given array
- for (int i = 0; i < columnNum; i++) {
- System.out.print(chars[0][i]);
- }
- //swap rows with columns of sub-array
- if (rowNum > 0 && columnNum > 0) {
- int newRowNum = columnNum;
- int newColumnNum = rowNum - 1;
- char[][] newChars = new char[newRowNum][newColumnNum];
- for (int i = 0; i < newRowNum; i++) {
- for (int j = 0; j < newColumnNum; j++) {
- newChars[i][j] = chars[j + 1][newRowNum - i - 1];
- }
- }
- //print the sub-array recursively
- printCharArray(newRowNum, newColumnNum, newChars);
- }
- }
- }
- 趣味算法
- 趣味算法之趣味素数
- 趣味算法之趣味分数
- 趣味数学算法实现
- 算法的趣味题
- 趣味算法-约瑟夫环
- 趣味算法-括号匹配
- 趣味算法-完全数
- 趣味算法-亲密数
- 趣味算法-水仙花数
- 趣味算法-自守数
- 趣味算法-回文数
- 趣味算法-Hanoi
- 趣味算法-背包问题
- 趣味算法-八皇后
- 趣味算法-青蛙过河
- 趣味算法-三色旗
- 趣味算法题(1)
- java代码解析2
- 金庸小说中的历史年纪
- 快速查找一组数中去掉的一个数
- sql语句找出缺少的数
- VB Winsock 介绍
- 趣味算法
- IQ题
- 【歌詞】佐藤裕美 - 鯨の国のお姫様
- 【歌詞】Yuria - もしも許されるなら
- 雅虎统计基础数据定义
- 【歌詞】いとうかなこ - 風にのせて
- 数据结构中排序和查找的算法
- Scintilla! 一个超棒的免费源代码编辑控件收藏
- 【歌詞】佐藤裕美 - TRACE-響きあえる場所