LeetCode_Easy心得:7. Reverse Integer(C语言)

Reverse digits of an integer .

/** 题目分析:本题要求输入一个整型数x,然后将高低位置换。讲通俗一点就是对输入的x进行反转操作。 */


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


/** 代码思路:通过对输入的x不断进行以10为除数的取余和整除操作,取余操作目的是提取x最低位,接着使用整除来过滤x最低位;每次提取出来x最低位之后,将新整型数temp的数位左移一位,再将提取的x最低位数放在temp个位;对x进行若干次取余整除操作之后,当x等于0时,此时的temp就是x的反转数,即我们需要return的值;

 */



int reverse(int x) {
    int temp=0;

    while(0 != x){
        
        if (temp > INT_MAX/10 || temp < INT_MIN/10)     //若变量temp即将超过int范围,那么返回0;
             return 0;
        }

       temp = temp*10 + x % 10;        //将变量左移一个整数位,取余结果放在个位;
        x = x / 10;                     //类似于将x右移一个整数位,原来的个位舍弃,十位变个位;
    }
    
   return temp;
}



//  LeetCode运行时间:13ms±3ms;

/** PS:代码中出现的

                               INT_MAX =2147483647

                               INT_MIN =-2147483648;

 */


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值