zoukankan      html  css  js  c++  java
  • leetcode7_C++整数反转

     

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123
    输出: 321

     示例 2:

    输入: -123
    输出: -321

    示例 3:

    输入: 120
    输出: 21

    注意:

    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。


    整数反转:

    思路:其实和回文数的思路是差不多。一个数x,把它进行生成另一个数temp,   进行%模,取位数,比如,159%10,则取出9,则y为9,然后把通过159/10,把9去掉,得到15,以此类推。

    方法一:leetcode显示20s.

    class Solution {
    public:
        int reverse(int x) {
            long long i=0;
            long long temp=0;//返回的结果
            int state=1;//判断正负
            if(x<0){
                state=0;
                x=-x;
            }
                while(x>0){
                    i=x%10;
                    if(i>=0){
                        temp=temp*10+i;
                    }
                    i=x/10;
                    x=i;  
                }
               
            if(state==0){
                temp=-temp;//负数的话,加一个-号
            }
            if(temp<-2147483648||temp>2147483647){
                temp=0;//溢出判断
            }
            return temp;
            
        }
    };

    int、long、long long取值范围

    unsigned   int   0~4294967295   
    int   -2147483648~2147483647 
    unsigned long 0~4294967295
    long   2147483648~2147483647
    long long的最大值:9223372036854775807
    long long的最小值:-9223372036854775808
    unsigned long long的最大值:1844674407370955161

    __int64的最大值:9223372036854775807
    __int64的最小值:-9223372036854775808
    unsigned __int64的最大值:18446744073709551615


    方法二. leetocde显示12s(官方)

    小弟不才,有错误请指出,谢谢。

    tianjiale菜鸟名企梦
  • 相关阅读:
    LabelImg 图像图像标注工具
    周杰伦的2000w个故事
    ROS 订阅图像节点(1)
    ROS 订阅图像节点
    ROS 双目标定
    书籍
    Z30云台PC控制问题
    大疆M600组装和试飞
    M100 X3云台安装
    M100 组装教程
  • 原文地址:https://www.cnblogs.com/tianjiale/p/10070290.html
Copyright © 2011-2022 走看看