锁定老帖子 主题:一道面试排序题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-03
题目:写一个方法,要求参数int类型,如:传入一个12345,返回结果54321。
想了好久也没想出办法来,请je的兄弟帮着写写。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-06-03
/**
* @param source * @param index * 测试递归(将数据翻转) */ private static void recursive(int source,int index){ source = Integer.parseInt((source+"").substring(index,index+1)+(source+"").substring(0,index)+(source+"").substring(index+1)); index += 1; if(index==(source+"").length()){ System.out.println(source); return; } recursive(source,index); } |
|
返回顶楼 | |
发表时间:2010-06-03
public class Reverse{ public static void reverse(int number){ if(number<10){ System.out.print(number); } else{ int num = number%10; System.out.print(num); reverse(number/10); } } public static void main(String[] args){ reverse(123); } } |
|
返回顶楼 | |
发表时间:2010-06-03
最后修改:2010-06-03
引用 /**
* @param source * @param index * 测试递归(将数据翻转) */ private static void recursive(int source,int index){ source = Integer.parseInt((source+"").substring(index,index+1)+(source+"").substring(0,index)+(source+"").substring(index+1)); index += 1; if(index==(source+"").length()){ System.out.println(source); return; } recursive(source,index); } 有问题 包含0就不对了 再看哈 |
|
返回顶楼 | |
发表时间:2010-06-03
w582875929 写道 引用 /**
* @param source * @param index * 测试递归(将数据翻转) */ private static void recursive(int source,int index){ source = Integer.parseInt((source+"").substring(index,index+1)+(source+"").substring(0,index)+(source+"").substring(index+1)); index += 1; if(index==(source+"").length()){ System.out.println(source); return; } recursive(source,index); } 有问题 包含0就不对了 再看哈 这个OK /** * @param source * @param index * 测试递归(将数据翻转) */ private static void recursive(int source,int index,char[] c){ if(index==0) c = new char[(source+"").length()]; c[(source+"").length()-1-index] = (source+"").charAt(index); if(index==(source+"").length()-1){ System.out.println(Integer.parseInt(new String(c))); return; } recursive(source,index+1,c); // source = Integer.parseInt((source+"").substring(index,index+1)+(source+"").substring(0,index)+(source+"").substring(index+1)); // index += 1; // if(index==(source+"").length()){ // System.out.println(source); // return; // } // recursive(source,index); //char[] c = (source+"").toCharArray(); } |
|
返回顶楼 | |
发表时间:2010-06-04
对应位置对换就可以了啊 public static String turnover(String source){ char[] a = source.toCharArray(); for(int i=0;i<a.length/2;i++){ char t = a[i]; a[i] = a[(a.length-1)-i]; a[(a.length-1)-i] = t; } return new String(a); } |
|
返回顶楼 | |
发表时间:2010-06-04
package boke.digui;
public class Test2 { /** * @param args */ public static void main(String[] args) { int n = 96587210; System.out.println(n); recursive(n,0); } /** * * @param n * @param index */ public static void recursive(int n, int index) { char[] c = (n + "").toCharArray(); int len = c.length; if( index > len - 1) { return; }else{ recursive (n, index+1); System.out.print(c[index]); } } } |
|
返回顶楼 | |
发表时间:2010-06-04
goby1220 写道 对应位置对换就可以了啊 public static String turnover(String source){ char[] a = source.toCharArray(); for(int i=0;i<a.length/2;i++){ char t = a[i]; a[i] = a[(a.length-1)-i]; a[(a.length-1)-i] = t; } return new String(a); } 题目要求用递归 |
|
返回顶楼 | |
发表时间:2010-06-04
maozj 写道 package boke.digui;
public class Test2 { /** * @param args */ public static void main(String[] args) { int n = 96587210; System.out.println(n); recursive(n,0); } /** * * @param n * @param index */ public static void recursive(int n, int index) { char[] c = (n + "").toCharArray(); int len = c.length; if( index > len - 1) { return; }else{ recursive (n, index+1); System.out.print(c[index]); } } } 规范一下。。。 public class Test2 { /** * @param args */ public static void main(String[] args) { int n = 96587210; System.out.println(n); recursive(n,0); } /** * * @param n * @param index */ public static void recursive(int n, int index) { char[] c = (n + "").toCharArray(); int len = c.length; if( index > len - 1) { return; }else{ recursive (n, index+1); System.out.print(c[index]); } } } |
|
返回顶楼 | |
发表时间:2010-06-04
最后修改:2010-06-04
/** * 题目:写一个方法,要求参数int类型,如:传入一个12345,返回结果54321。 * 面试的时候遇到这个题,还有个要求,是方法体内的代码不能超过8行,而且还要用递归。 * * @author Turing * */ public class Reverse { public static void main(String[] args) { int i = 1234567890; new Reverse().reverse(i); } private void reverse(int integer) { String str = String.valueOf(integer); System.out.print(str.substring(str.length() - 1)); if (str.length() > 1) { String s = str.substring(0, str.length() - 1); this.reverse(Integer.parseInt(s)); } } } |
|
返回顶楼 | |