判断一个数是否是回文数

 
 

自己写了一种笨方法,就是先把数放在ArrayList中,然后一位一位的比较

然后看了一下别人的方法,对比下,吸取经验

package TestDemo;
import java.util.*;
public class Test2 {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int x = in.nextInt();
		System.out.println(isPalindrome( x));
		System.out.println(isPalindrome1( x));
		
	}
	//方法一
	public static boolean isPalindrome(int x) {
		ArrayList list = new ArrayList ();
		int y = x;
		if(x == 0){
			list.add(x);
		}
		else{
		while(x != 0){
			list.add( x % 10);
			x = x /10;
		}}
		int l = list.size();
		int j =0;
		if( y>=0){
			for(int i =0 ; i < l/2 ; i ++){
				if(list.get(i) == list.get(l-i-1)){
					j++;
				}
				else{
					return false;
				}
			}
			 return true;
		}
		else{
			 return false;
		}
		
	}
	
	//方法二
	static boolean isPalindrome1(int x) {
	    if (x<0 || (x!=0 && x%10==0)) return false;
	    int rev = 0;
	    while (x>rev){
	    	rev = rev*10 + x%10;
	    	x = x/10;
	    }
	    return (x==rev || x==rev/10);
	}
}

猜你喜欢

转载自blog.csdn.net/wilsonsong1024/article/details/79732749