欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Leetcode rever-Integer

程序员文章站 2022-04-02 20:22:55
题目描述将给出的整数x翻转。例1:x=123,返回321例2:x=-123,返回-321你有思考过下面的这些问题么?如果整数的最后一位是0,那么输出应该是什么?比如10,100你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,思路:依次取个位数,放入res每次迭代 res*10+lastNum如何判断溢出 int new_res=res*10+last判断 (new_res-last)/10与 res是否相等......

题目描述

将给出的整数x翻转。
例1:x=123,返回321
例2:x=-123,返回-321

你有思考过下面的这些问题么?

如果整数的最后一位是0,那么输出应该是什么?比如10,100
你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,

 

思路:

依次取个位数,放入res

每次迭代  res*10+lastNum

如何判断溢出    int new_res=res*10+last

判断  (new_res-last)/10与 res是否相等   如果不等  那么产生溢出

 

int reverse(int x) {
        // write code here
        bool flag=false;
        if(x<0)
        {
            x=abs(x);
            flag=true;
        }
        int res=0;
        
        
        while(x>0)
        {
            int last=x%10;//取最后一位数字
            int new_res=res*10+last;//原先的数字*10+新来数字
            if((new_res-last)/10!=res) //产生溢出
                return 0;
            res=new_res;
            x=x/10; //
            
            
        }
        if(flag)
            return -res;
        return res;
 
    }

 

本文地址:https://blog.csdn.net/qq_33369979/article/details/107621730

相关标签: Leetcode