论坛首页 Java企业应用论坛

一道面试排序题

浏览 35537 次
精华帖 (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);
最多多三行解决问题。
0 请登录后投票
   发表时间: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));
}

}
0 请登录后投票
   发表时间: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);
最多多三行解决问题。

题目要求用递归。。。。
0 请登录后投票
   发表时间: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);
}

}

0 请登录后投票
   发表时间: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);
}

}

怎么想到的了 数学学到家了 真牛
3 请登录后投票
   发表时间: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));
	}
}
  • 大小: 13.8 KB
0 请登录后投票
   发表时间: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 );
}
}
0 请登录后投票
   发表时间: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());
这个不错··
0 请登录后投票
   发表时间:2010-06-04  
感觉不用转成字符串吧,既然要递归就在递归里去按位取余就可以了吧。
0 请登录后投票
   发表时间: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));
        }
        }
   
    }
}
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics