输出逆序数字相当于反转数字,比如1234,逆序后为4321,在反转数字时,需要注意反转后得到的数字是否会超过最大范围,比如int最大值为2147483647,正常反转后的值是7463847412,但是已经超出了int的范围。
示例代码:
private static long reverse(int number) {
// 反转后的数字定义为long型,避免反转后超出了int的最大范围
long reversedNumber = 0;
while (number != 0) {
reversedNumber = reversedNumber * 10 + (number % 10);
number = number / 10;
}
return reversedNumber;
}
如果需要判断反转后的数字是否会超过整型的最大最小值,并且当反转后的数字超过时,返回0,那么只需要对反转后的数字添加一个判断,如下:
private static int reverse2(int number) {
long reversedNumber = 0;
while (number != 0) {
reversedNumber = reversedNumber * 10 + (number % 10);
number = number / 10;
}
if (reversedNumber > Integer.MAX_VALUE || reversedNumber < Integer.MIN_VALUE) {
return 0;
}
return Long.valueOf(reversedNumber).intValue();
}
测试验证
public static void main(String[] args) {
System.out.println(reverse(1234));
System.out.println(reverse(-1234));
System.out.println(reverse(Integer.MAX_VALUE));
System.out.println(reverse(Integer.MIN_VALUE));
System.out.println(reverse2(Integer.MAX_VALUE));
System.out.println(reverse2(Integer.MIN_VALUE));
}
输出的结果如下:
4321
-4321
7463847412
-8463847412
0
0
更多有关Java面试相关的知识点可以关注【Java面试手册】小程序,涉及Java基础、多线程、JVM、Spring、Spring Boot、Spring Cloud、Mybatis、Redis、数据库、数据结构与算法等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。