Leetcode c语言-Reverse Integer
2017-09-10 21:40
405 查看
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
这道题目比较简单,要注意的是溢出的情况,对于有符号int而言,最大的数字是2^31-1=2147483647。因此该数字是上限。
Solutions:
#include <math.h>
int reverse(int x) {
int i,j;
long result=0;
int flag=0;
int max = (2147483647);
long temp=0;
if(x<0) {
flag=1;
x=abs(x);
}
if (x<0 && (x+max)<0)
return 0;
if (x==0)
return 0;
for (i=10;i>=1;i--) {
if((int)(x/((int)pow(10,i-1))))
break;
}
for (j=i;j>=1;j--) {
temp = result+(x/((long)pow(10,j-1)))*((long)pow(10,i-j));
if ((temp - max)>0) {
result = 0;
break;
}
result=temp;
x=(x%(int)pow(10,j-1));
}
if (flag==1 && result!=0)
result = -result;
return (int)result;
}
第一个for循环是找到该数有多少位。第二个循环是转换数字。
Example1: x = 123, return 321
Example2: x = -123, return -321
click to show spoilers.
Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.
这道题目比较简单,要注意的是溢出的情况,对于有符号int而言,最大的数字是2^31-1=2147483647。因此该数字是上限。
Solutions:
#include <math.h>
int reverse(int x) {
int i,j;
long result=0;
int flag=0;
int max = (2147483647);
long temp=0;
if(x<0) {
flag=1;
x=abs(x);
}
if (x<0 && (x+max)<0)
return 0;
if (x==0)
return 0;
for (i=10;i>=1;i--) {
if((int)(x/((int)pow(10,i-1))))
break;
}
for (j=i;j>=1;j--) {
temp = result+(x/((long)pow(10,j-1)))*((long)pow(10,i-j));
if ((temp - max)>0) {
result = 0;
break;
}
result=temp;
x=(x%(int)pow(10,j-1));
}
if (flag==1 && result!=0)
result = -result;
return (int)result;
}
第一个for循环是找到该数有多少位。第二个循环是转换数字。
相关文章推荐
- LeetCode 简单操作 | 7. Reverse Integer
- 和大神们学习每天一题(leetcode)-Reverse Integer
- LeetCode:Reverse Integer
- LeetCode_Reverse Integer
- [LeetCode]7 Reverse Integer
- leetcode--Reverse Integer
- 【Leetcode】:242. Valid Anagram问题 in Go语言
- LeetCode (2). Reverse Integer
- 【LeetCode】Merge k Sorted Lists &&Reverse Integer
- Leetcode 7 - Reverse Integer
- [leetcode] Reverse Integer
- [LeetCode]题解(python):007-Reverse Integer
- [LeetCode 007] Reverse Integer
- leetcode: Reverse Integer
- 【Leetcode】Reverse Integer
- leetcode Add Digits java语言实现
- [LeetCode 解题报告] Reverse Integer
- LeetCode:Reverse Integer
- [Leetcode]-Reverse Integer
- 【Leetcode】Reverse Integer