锁定老帖子 主题:一道面试排序题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-04
tanlingcau 写道 /** * 题目:写一个方法,要求参数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)); } } } 既然都转成了String为什么不用StringBuffer呢 String str = StringBuffer.reverse(String.valueOf(integer)).toString(); return Integer.parseInt(s); 最多多三行解决问题。 |
|
返回顶楼 | |
发表时间:2010-06-04
public class Fun{
static public int fun(int i){ char[] ch=String.valueOf(i).toCharArray();//1 char tmp;//2 for(int x=0;x<ch.length/2;x++){//3 tmp=ch[x];//4 ch[x]=ch[ch.length-x-1];//5 ch[ch.length-1-x]=tmp;//6 }//7 return Integer.valueOf(new String(ch));//8 } static public void main(String[] str){ System.out.println(fun(12301)); } } |
|
返回顶楼 | |
发表时间:2010-06-04
bxf12315 写道 tanlingcau 写道 /** * 题目:写一个方法,要求参数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)); } } } 既然都转成了String为什么不用StringBuffer呢 String str = StringBuffer.reverse(String.valueOf(integer)).toString(); return Integer.parseInt(s); 最多多三行解决问题。 题目要求用递归。。。。 |
|
返回顶楼 | |
发表时间:2010-06-04
soton_dolphin 写道 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-04
soton_dolphin 写道 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-04
public class Test { public static int reverse(int i) { return new Integer(new StringBuffer(new String().valueOf(i)).reverse().toString()).intValue(); } public static void main(String[] args) { System.out.println(Test.reverse(12345)); } } |
|
返回顶楼 | |
发表时间:2010-06-04
最后修改:2010-06-04
public static void main( String[] args ) {
int num = 12345; char[] a = ( num + "" ).toCharArray(); char[] b = new char[a.length]; System.out.println( antitone( a, a.length - 1, b, 0 ) ); } public static char[] antitone( char[] a, int i, char[] b, int j ) { b[j] = a[i]; if (i == 0) { return b; } else { return antitone( a, --i, b, ++j ); } } |
|
返回顶楼 | |
发表时间:2010-06-04
int a=12345;
String b=String.valueOf(a); StringBuffer sb=new StringBuffer(); sb.append(b.toCharArray()); sb.reverse(); System.out.println(sb.toString()); 这个不错·· |
|
返回顶楼 | |
发表时间:2010-06-04
感觉不用转成字符串吧,既然要递归就在递归里去按位取余就可以了吧。
|
|
返回顶楼 | |
发表时间:2010-06-04
/**
* java String 的反转 * @author ftz * */ public class StringReverse { public static void main(String[] args){ int i = 12345; String str = String.valueOf(i); if(str.length() > 0){ for(int i = str.length()-1; i>= 0; i--){ System.out.print(str.charAt(i)); } } } } |
|
返回顶楼 | |