容易_431_反转整数(7)

后备知识:

1.long long 表示的是64bit

int 表示的是32bit

2.INT_MIN:int取值范围内的最小值;INT_MAX:int取值范围内的最大值

32位的int型的取值是2147483647 到 -2147483648,但是,在C/C++语言中,你不能直接使用 -2147483648 来代替最小负数,因为它不是一个数,而是一个表达式。表达式是:“对正数2147483648取负”,所以,2147483648已经溢出了。这就是为什么INT_MIN总是定义成 (-INT_MAX - 1) 的原因。


问题描述:

将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数)。


样例

给定 x = 123,返回 321

给定 x = -123,返回 -321


C++代码如下:

class Solution {
public:
    /**
     * @param n the integer to be reversed
     * @return the reversed integer
     */
    int reverseInteger(int n) {
        // Write your code here
        long long res = 0;
        while(n != 0) {
            res = res * 10 + n % 10;
            n /= 10;
    }
    return (res < INT_MIN || res >INT_MAX) ? 0 : res;
    }
};


具体见原博:http://www.cnblogs.com/grandyang/p/5778281.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值