zoukankan      html  css  js  c++  java
  • [算法练习]Reverse Integer

    题目说明:

    Reverse digits of an integer.

    Example1: x = 123, return 321
    Example2: x = -123, return –321

    程序代码:

    #include <gtest/gtest.h>
    using namespace std;
    
    int reverse2(int x) 
    {
        int result[20] = {0};
        int resultIdx = 0;
        int sign = 1;
        long long val = x;
        if (val < 0)
        {
            sign = -1;
            val = -val;
        }
    
        while (val)
        {
            result[resultIdx++] = val % 10;
            val /= 10;
        }
    
        long long newResult = 0;
        long long base = 1;
        for (int i = resultIdx-1; i >= 0; i--)
        {
            newResult += result[i] * base;
            base *= 10;
        }
    
        if (newResult > 0x7FFFFFFF)
        {
            newResult = 0;
        }
    
        newResult *= sign;
    
        return (int)newResult;
    }
    
    int reverse(int x) 
    {
        int result[20] = {0};
        int resultIdx = 0;
    
        while (x)
        {
            result[resultIdx++] = x % 10;
            x /= 10;
        }
    
        long long newResult = 0;
        long long base = 1;
        for (int i = resultIdx-1; i >= 0; i--)
        {
            newResult += result[i] * base;
            base *= 10;
        }
    
        if ((newResult > 0x7FFFFFFF) || (newResult < -0x7FFFFFFF))
        {
            newResult = 0;
        }
    
        return (int)newResult;
    }
    
    TEST(Pratices, tReverse)
    {
        // 123 -> 321
        ASSERT_EQ(reverse(123),321);
        // -123 -> -321
        ASSERT_EQ(reverse(-123),-321);
        // 0 -> 0
        ASSERT_EQ(reverse(0),0);
        // -0 -> 0
        ASSERT_EQ(reverse(-0),0);
        // 0x1FFFFFFF -> 0x7FFFFFFF
        ASSERT_EQ(reverse(-2147483648),0);
        // -0x1FFFFFFF -> -0x7FFFFFFF
        //ASSERT_EQ(reverse(-0x1FFFFFFF),-0x7FFFFFFF);
    }
  • 相关阅读:
    ABP理论学习之异常处理
    ABP理论学习之导航(Navigation)
    ABP理论学习之验证DTO
    C#程序实现窗体的最大化/最小化
    残缺棋盘的覆盖问题
    23:区间内的真素数
    最大质因子序列
    02:二分法求函数的零点
    01:查找最接近的元素
    最大连续和问题【四种不同的算法】
  • 原文地址:https://www.cnblogs.com/Quincy/p/5290025.html
Copyright © 2011-2022 走看看