7.整数反转

  • 反转之后如果溢出则做逆运算不成立

new = old * 10 + x % 10 // 正序运算
old = (new - x % 10)/10 // 逆序运算


代码

class Solution {
	
    public int reverse(int x) {
    	
    	// 最终要返回的反转数
    	int rev = 0;
    	
    	// 只要x还不到0说明还有余,继续操作
    	while(x != 0) {
    		
    		// X对10取模得到个位数
    		// 最终的结果每次乘10空出个位加上flag
    		int newRev = rev * 10 + x % 10; 
    		// 判断溢出,如果不溢出继续做
    		if(rev != (newRev - x%10)/10)
    			 return 0;
			rev = newRev;
			// x为整数,除10仍然为整数
			x /= 10;
    		
    	}
    	
    	return rev;
    }
}

posted @ 2020-09-06 22:57  于大宝执剑江湖  阅读(115)  评论(0)    收藏  举报