精华内容
下载资源
问答
  • C++ - 整数反转

    万次阅读 多人点赞 2019-02-27 10:48:00
    分享一个大牛的人工智能教程。零基础!通俗易懂!... * 题目很简单,完成函数reverse,实现把给定的一个整数反转。 * 举两个例子如下:x = 123,return 321;x = -123,return -321。 */ #in...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 

    /*
     * Created by Chimomo
     *
     * 题目很简单,完成函数reverse,实现把给定的一个整数反转。
     * 举两个例子如下:x = 123,return 321;x = -123,return -321。
     */
    
    #include <iostream>
    
    int reverse(int x) {
    
        // The result integer to be returned.
        int result = 0;
    
        // The reminder.
        int reminder;
    
        // The sentinel to indicate positive or negative.
        int negative = 0;
    
        // Make negative number be positive and set sentinel.
        if (x < 0) {
            x = -x;
            negative = 1;
        }
    
        // This loop does the "Inverse".
        while (x % 10 >= 0 && x > 0) {
            reminder = x % 10;
            result = result * 10 + reminder;
            x = x / 10;
        }
    
        // Restore to negative by sentinel.
        if (negative == 1) {
            result = -result;
        }
    
        return result;
    }
    
    int main() {
        int num1 = 344;
        int num2 = -90334;
        printf("%d\r\n", reverse(num1));
        printf("%d\r\n", reverse(num2));
    
        return 0;
    }
    
    // Output:
    /*
    443
    -43309
    
    */

     

    展开全文
  • 整数反转

    2020-07-18 12:01:46
    leetcode题解——整数反转 题目要求给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个...
    leetcode题解——整数反转

    题目要求

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 
    注意:
    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    示例

    输入: 123
    输出: 321

    题解

    //java:整数反转
    public class P7ReverseInteger {
    public static void main(String[] args) {
    Solution solution = new P7ReverseInteger().new Solution();
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
    public int reverse(int x) {
    /*int ret=0;
    while (x != 0) {
    int pop = x % 10;
    if (ret > Integer.MAX_VALUE / 10 || (ret == Integer.MAX_VALUE / 10 && pop > 7))
    return 0;
    if (ret < Integer.MIN_VALUE / 10 || (ret == Integer.MIN_VALUE / 10 && pop < -8))
    return 0;
    ret = ret * 10 + pop;
    x /= 10;
    }
    return ret;*/
    /*
    java int 类整数的最大值是 2 的 31 次方 - 1 = 2147483648 - 1 = 2147483647
    可以用 Integer.MAX_VALUE 表示它,即 int value = Integer.MAX_VALUE;
    Integer.MAX_VALUE + 1 = Integer.MIN_VALUE = -2147483648
    */
    int res = 0;
    while (x != 0) {
    int t = x % 10;
    int newRes = res * 10 + t;
    //如果数字溢出,直接返回0
    if ((newRes - t) / 10 != res)
    return 0;
    res = newRes;
    x = x / 10;
    }
    return res;
    }
    }
    //leetcode submit region end(Prohibit modification and deletion)

    }

    运行结果

    info
    运行成功:
    测试用例:123
    测试结果:321
    期望结果:321
    stdout:
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,407
精华内容 26,962
关键字:

整数反转