如何将一个Integer类型的数字倒序输出?(最简单的一种方法)
二话不说先贴代码
public static int reverse(int x) {
/*
* 123
* n=0+3 x=12
* n=30+2 x=1
* n=320+1 x=0
*/
long n = 0;
while(x != 0) {
int a = x % 10;
n = n * 10 + a;
x = x / 10;
}
return (int)n == n? (int)n : 0;
}
看了代码后我们再来好生分析一波
首先看下图,这是以12345这个数字来分析的对于一个数字的逆序输出原理图。
通过while循环,我们可以把这个数分解出来,然后通过依次乘以10再加上后一次的余数就可以逆序输出。
另外我们还应该知道的是,Integer的范围在[-2^31,
2^31 - 1]。所以当一个long、double的数转化为int型的时候最大为2^31 - 1, 最小为-2^31。