Reverse Integer
2015-10-30 13:09
197 查看
问题描述
Reverse digits of an integer.Example1: x = 123, return 321
Example2: x = -123, return -321
算法
代码一:public int reverse(int x) { long rev= 0; while( x != 0){ rev= rev*10 + x % 10; System.out.println(rev); x= x/10; if( rev > Integer.MAX_VALUE || rev < Integer.MIN_VALUE) return 0; } return (int) rev; }
代码二:
public int reverse(int x) { int result = 0; while (x != 0) { if (result * 10 / 10 != result) return 0; // result*10/10 will not equals result if overflow, if not overflow, result*10 + x%10 is safe, then continue result = result * 10 + x % 10; x /= 10; } return result; }
注意事项:
1.对于int型,一定要注意可能存在越界现象,比如当x=1234567899时,revers后就越界了。代码一的解决方法是用Long型变量。代码二的方法比较独特,但是代码二不是正确的,假如result*10=2147483646,并且x%10=4,虽然result*10/10=result,但是result*10+x%10 越界。代码二可以借鉴的思想是,如果result*10是越界的,那么result*10/10!=result。
2.对于一个负数x=-212,x%10=-2,而不是8.
相关文章推荐
- Shiro 缓存失效以后的一个问题
- tornado.gen 模块解析
- Java根据两点的经纬度来计算之间的距离
- Oracle round()函数与trunc()函数区别介绍
- object_getClass
- 关于ios中的点赞控件效果的实现--UIControl
- spark数据挖掘 - 基于 Audioscrobbler 数据集音乐推荐实战
- DRBD原理及特性概述
- oracle恢复备份数据
- 多子系统项目架构与人员管理
- 题解
- Python 基础——Python程序员常犯的那些错误
- 玩转Visual Studio之开篇介绍
- google搜索镜像
- Eclipse中Vi插件Vrapper的安装
- 林业通用平台上线
- C#实现下载功能,可用于软件自动更新
- 产品经理的三种特质
- 持久化存储系统本版号
- 半监督学习研究