zoukankan      html  css  js  c++  java
  • LeetCode(7)Reverse Integer

    题目如下:

    C++代码:

    class Solution {
    public:
        int reverse(int x) {
            if( overflow(x) == true)
            {  
                return 0;  
            }  
      
            int result = 0;  
              
            while (x!=0)  
            {  
                result = 10*result + x%10;  
                x /= 10;  
            }  
      
            return result;  
        }
    private:
        bool overflow(int x)//此题要保证返回的整数位整型,确定的是x是一个整型
        {                   //故要判断x是否小于~(2^31-1),小于则没有越界
            if (x / 1000000000 == 0) // x的绝对值小于1000000000, 不越界  
            {  
                return false;  
            } else if (x == INT_MIN) // INT_MIN反转后越界,也没法按下述方法取绝对值(需要特判),直接返回true  
            {  
                return true;  
            }   
            x = abs(x);  
            // x = d463847412 ->  2147483647. (参数x,本身没有越界,所以d肯定是1或2)  
            // or -d463847412 -> -2147483648.   
            for (int cmp = 463847412; cmp != 0; cmp/=10, x/=10)  
            {  
                if ( x%10 > cmp%10 )  
                {  
                    return true;  
                } else if (x%10 < cmp%10)  
                {  
                    return false;  
                }  
            }  
              
            return false;  
        }
    };
  • 相关阅读:
    外星人(alien)
    6. 第 6 章 函数
    5. 第 5 章 循环
    4. 第 4 章 条件选择
    3. 第 3 章 表达式和交互
    2. 第 2 章 C++简介
    1. 第 1 章 计算机和编程简介
    24. 蛇形填数
    23. 开灯问题
    12. aabb
  • 原文地址:https://www.cnblogs.com/CQUTWH/p/6082165.html
Copyright © 2011-2022 走看看