009Palindrome Number (C)

Determine whether an integer is a palindrome. Do this without extra space.


回文数:逆序数和正序数不变,对于越界,如果逆序后越界说明不是回文数

题目要求不要开辟额外的空间

如果没有这个要求我立马会用字符串解决,不过这样的要求倒是学到一种新方法,将数字逆过来进行比较,对于越界的问题,将最高位和最低位比较,不相等就返回false

bool isPalindrome(int x) {
    int a=0,b=x,flag=0,lastOne;
    while(b>0){
    	a+=b%10;
		if(flag==0){
    		lastOne=a;
    		flag=1;
    	}
    	b=b/10;
    	if(b>0){
    		if(b<10){
    			if(lastOne!=b){
    				return false;
    			}
    		}
			a*=10;
    	}
    }
    return a==x;
    
}


你可能感兴趣的:(009Palindrome Number (C))