Reverse Integer - 反转一个int,溢出时返回0

简介: Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 若反转的数溢出,直接返回0 可以用计算结果来判断溢出,也可以用因数来判断 J...

Reverse Integer

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

若反转的数溢出,直接返回0

可以用计算结果来判断溢出,也可以用因数来判断

Java代码实现:

 1 public class ReverseInteger {
 2     public static int reverseInt(int x){
 3         if (x == 0) {
 4             return 0;
 5         }
 6         int flag = -1;
 7         int result = 0;
 8         if (x < 0) {
 9             x = x * flag;
10             if (x < 0) {
11                 return 0;
12             }
13         } else {
14             flag = 1;
15         }
16         int digits = 1;
17         int temp = x;
18         while(temp/10 != 0){
19             digits++;
20             temp/=10;
21         }
22         //judge before calculate at every may out of range place
23         for (int i = 1; i <= digits; i++) {
24             int a,b;
25             a = (int) (x/Math.pow(10, i-1));
26             a = a%10;//get the single number
27             b = (int) Math.pow(10, digits-i);
28             if ((a*b<0) || (a > 2 && (digits - i) == 9)) {//use number to judge
29                 return 0;
30             } else {
31                 temp = a*b;
32             }
33             if (result + temp < 0) {//judge
34                 return 0;
35             } else {
36                 result += temp;
37             }
38         }
39         return result*flag;
40     }
41     public static void main(String args[]){
42         int max = 2147483647;
43         int min = -2147483648;
44         System.out.println(reverseInt(0));
45         System.out.println(reverseInt(1534236469));
46         System.out.println(reverseInt(-2133847412));
47     }
48 }

输出:

0
0
-2147483312

目录
相关文章
【面试知识点】关于Integer和Int的比较
【面试知识点】关于Integer和Int的比较
|
4月前
|
存储 缓存 人工智能
Java int和Integer的区别
本文介绍了Java中int与Integer的区别及==与equals的比较机制。Integer是int的包装类,支持null值。使用==比较时,int直接比较数值,而Integer比较对象地址;在-128至127范围内的Integer值可缓存,超出该范围或使用new创建时则返回不同对象。equals方法则始终比较实际数值。
158 0
|
8月前
|
存储 C语言 Python
[oeasy]python077_int类型怎么用_整数运算_integer_进制转化_int类
本文主要讲解了Python中`int`类型的应用与特性。首先回顾了`int`词根的溯源,探讨了整型变量的概念及命名规则(如匈牙利命名法)。接着分析了整型变量在内存中的存储位置和地址,并通过`type()`和`id()`函数验证其类型和地址。还介绍了整型变量的运算功能,以及如何通过`int()`函数将字符串转化为整数,支持不同进制间的转换(如二进制转十进制)。此外,文章提及了关键字`del`的使用场景,对比了Python与C语言中`int`的区别,并总结了整型与字符串类型的差异,为后续深入学习奠定基础。
174 1
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
|
存储 缓存 Java
int 和 Integer 哪一个占用更多内存?
【8月更文挑战第21天】
493 0
|
缓存 安全 Java
Java的Integer和int有什么区别?
Java的Integer和int有什么区别?
193 1
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
存储 Java API
使用Integer而不是int的场景和优势解析
使用Integer而不是int的场景和优势解析
445 0
|
存储 缓存 Java
【Java】int和Integer的区别?为什么有包装类?
【Java】int和Integer的区别?为什么有包装类?
|
设计模式 缓存 Java
就因为把int改成Integer,第2天被辞了
一个程序员就因为改了生产环境上的一个方法参数,把int型改成了Integer类型,因为涉及到钱,结果上线之后公司损失惨重,程序员被辞退了。信不信继续往下看。先来看一段代码:
128 0

热门文章

最新文章