给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
示例 5:
输入:x = 1534236469
输出:0
package LeetCode.简单;
import java.util.Scanner;
public class 整数反转7 {
public static void main(String[] args) {
Solution7 a=new Solution7();
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
System.out.println(a.reverse(x));
}
}
class Solution7 {
public int reverse(int x) {
int[] a=new int[40];
int n=0;
long sum = 0;
if(x>0){
while(x>0){
int s=x%10;
a[n]=s;
n++;
x=x/10;
}
int count=n-1;
for(int i=0;i<n;i++){
sum+= (Math.pow(10,count)*a[i]);
count--;
}
if(sum>=Math.pow(2,31)){
sum=0;
}
}
else if(x<0) {
x = Math.abs(x);
while (x > 0) {
int s = x % 10;
a[n] = s;
n++;
x = x / 10;
}
int count = n - 1;
for (int i = 0; i < n; i++) {
sum += (Math.pow(10, count) * a[i]);
count--;
}
sum = sum * (-1);
if (sum < (Math.pow(2, 31) * (-1))) {
sum = 0;
}
}
return (int)sum;
}
}