leetcode Reverse Integer
2015-06-01 10:03
447 查看
题目链接点击打开链接
这个题加了可能溢出的情况之后真的复杂。不过我属于用作弊的方法把这个题目做出来了。
下面是判断相加溢出的方法
(1)无符号整数相加
int uadd_ok(unsigned x, unsigned y)
{
unsigned z = x + y;
if(z < x)
return 0;
return 1;
}
(2) 有符号整数相加,这个要复杂一些
int add_ok(int x, int y)
{
int z = x + y;
if(x > 0 && y > 0 && z < 0)
return 0;
if(x < 0 && y < 0 && z > 0)
return 0;
return 1;
}
这个题加了可能溢出的情况之后真的复杂。不过我属于用作弊的方法把这个题目做出来了。
public class Solution { public int reverse (int x) { long xx=x; if(xx==0) { return (int)xx; } boolean neg=false; if(xx<0) { neg=true; xx=-xx; } int length=(int)Math.log10(xx)+1; long numbers[]=new long[length]; for(int i=length-1;i>=0;i--) { numbers[i]=xx%10; xx/=10; } long result=0L; int power=1; for(int i=0;i<length;i++) { result+=numbers[i]*power; power*=10; } if(result>Integer.MAX_VALUE) { return 0; } if(neg) { return -(int)result; } else { return (int)result; } } }
下面是判断相加溢出的方法
(1)无符号整数相加
int uadd_ok(unsigned x, unsigned y)
{
unsigned z = x + y;
if(z < x)
return 0;
return 1;
}
(2) 有符号整数相加,这个要复杂一些
int add_ok(int x, int y)
{
int z = x + y;
if(x > 0 && y > 0 && z < 0)
return 0;
if(x < 0 && y < 0 && z > 0)
return 0;
return 1;
}
相关文章推荐
- pb自动注册ODBC的sqlanywhere数据源
- Mina学习笔记之IoSessio翻译
- ArrayList线程不安全分析
- 解决Ubuntu Ping网关Destination Host Unreachable错误
- linux手动安装sbt过程
- Esper学习之四:Context .
- 使用python实现linux下守护进程(初学,瑕疵多)
- The Swift Programming Language - Closures
- 文件无刷新上传(swfUpload与uploadify)
- SecureCRT快捷键
- 2015年5月中国域名解析商(国际域名)解析量报告
- JavaScript使用位运算符判断奇数和偶数的方法
- IPROUTE2 Utility Suite Documentation
- hdfs笔记
- 00-自测5. Shuffling Machine (20)
- IOS中的__block关键字简单使用
- 微软100题(46)括号的匹配方式
- Orchard常见问题
- Web Deploy发布网站及常见问题解决方法(图文)
- 使用jQuery lazyload 实现图片延迟加载