题目描述

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

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

解题思路

反转整数的思路是从一个数的最后一位开始,依次向前遍历,每次反转整数依次左移一位,并取出一位数作为新数的末位数。具体而言首先定义反转以后的数res初始为0,当x不为0时循环:

  • 记录temp=res*10+x%10,此时temp即为遍历到当前位之前的反转整数
  • 然后比较temp/10与res是否相等,如果整数不溢出显然相等,否则说明反转后的整数溢出,直接返回0
  • 最后把temp赋值给res,并令x=x/10,即去掉最后一位,继续反转之前的数字

代码

 class Solution {
public:
int reverse(int x) {
int res = ;
while(x){
int temp = res * + x % ;
if(temp / != res)
return ;
res = temp;
x /= ;
}
return res;
}
};

最新文章

  1. angularjs中provider,factory,service的区别和用法
  2. C#利用WIN32实现按键注册
  3. VB.NET 注册表基本操作
  4. 【CentOS】安装配置vncserver
  5. HTTP1.1缓存策略
  6. Javascript继承实现
  7. Mac Eclipse+Maven+TestNg+ReportNg 生成测试报告
  8. day 08字符编码 文件处理
  9. Python_time模块
  10. 解决Code First因_migrationHistory表与代码不一致的问题
  11. CentOS 新系统后配置
  12. PHP《将画布(canvas)图像保存成本地图片的方法》
  13. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击
  14. UE4 引擎基础类说明
  15. scrapy docker 基本部署使用
  16. Linux虚拟机安装配置手册(版本:7.3)
  17. EF6 CodeFisrt支持Oracle
  18. 九度oj 1001 A+B for Matrices 2011年浙江大学计算机及软件工程研究生机试真题
  19. 常见Linux命令(非文件操作)
  20. 006-基于hyperledger fabric1.4( 官方文档)编写第一个应用【外部nodejs调用】

热门文章

  1. Java 单例类
  2. WPF应用打包流程
  3. unity shader入门(二)语义,结构体,逐顶点光照
  4. django 的form登录 注册
  5. 03-JavaScript语法介绍
  6. Python_math模块
  7. 关于 ES5 & ES6 数组遍历的方法
  8. 《exception》第九次团队作业:Beta冲刺与验收准备(大结局)
  9. BZOJ -3730(动态点分治)
  10. 启用Microsoft loopback Adapte