7. Reverse Integer
2016-06-05 10:06
204 查看
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
class Solution {
public:
int reverse(int x) {
int flag;
if(x<0)
{
flag=1;
x=-x;
}
long long int res=0;
while(x>0)
{
int temp=0;
temp=x%10;
res=res*10+temp;
x=x/10;
}
if(res>INT_MAX)
{
return 0;
}
if(flag==1)
res=-res;
return res;
}
};
注意问题
1、一个整数以1开头9结尾,没有越界,但是反过来就越界了,所以要考虑越界问题
2、中间接收值得时候要定义一个比较大的数来接收反转过来的值
3、16位int原码:0111,1111,1111,1111即32767int型的范围是-32768~32767 32位min:-2147483648 max:2147483647
4、INT_MAX可表示int最大值
5??## ***while(x!=0)不对,while(x>0)就对,不明白为什么***一个int的数/之后,最后肯定等于0啊??提示 32位最小测试时错误,越界?原码补码?
Example1: x = 123, return 321
Example2: x = -123, return -321
class Solution {
public:
int reverse(int x) {
int flag;
if(x<0)
{
flag=1;
x=-x;
}
long long int res=0;
while(x>0)
{
int temp=0;
temp=x%10;
res=res*10+temp;
x=x/10;
}
if(res>INT_MAX)
{
return 0;
}
if(flag==1)
res=-res;
return res;
}
};
注意问题
1、一个整数以1开头9结尾,没有越界,但是反过来就越界了,所以要考虑越界问题
2、中间接收值得时候要定义一个比较大的数来接收反转过来的值
3、16位int原码:0111,1111,1111,1111即32767int型的范围是-32768~32767 32位min:-2147483648 max:2147483647
4、INT_MAX可表示int最大值
5??## ***while(x!=0)不对,while(x>0)就对,不明白为什么***一个int的数/之后,最后肯定等于0啊??提示 32位最小测试时错误,越界?原码补码?
相关文章推荐
- 网络安全漫谈(下)
- JAVA多线程之生产者消费者模型
- POJ2446 Chessboard(二分图)
- java2
- HDU 1398 Square Coins (母函数)
- Ubuntu 16.04待机后无法接受输入
- 国内大学毕业论文LaTeX模板集合
- MFC如何清理和删除一些消息映射函数
- 分解质因数
- C++第7次实验-数组素数排序
- java
- NYOJ 43 24 Point game (DFS)
- ContentValues保存数据
- 简单的canvas加载图片与视频
- Android 启动模式及常用的Intent的Flag
- 学习进度第十四周
- LeetCode "Binary Tree Level Order Traversal II" using DFS
- c++标准库—命名空间std和头文件的演变 (各个头文件作用解析解释,惊喜!!!)
- JavaScript函数中的参数类型
- 数据结构学习之单向链表[附Java实现代码]