我正试图找到一种方法来反转数字没有
- 将其转换为字符串以求出长度
- 反转字符串并将其解析回来
- 运行一个单独的循环来计算长度
我现在是这样做的
public static int getReverse(int num){
int revnum =0;
for( int i = Integer.toString(num).length() - 1 ; num>0 ; i-- ){
revnum += num % 10 * Math.pow( 10 , i );
num /= 10;
}
return revnum;
}
但我想实现以上3个条件。
我正在寻找一种方法,可能使用按位移位运算符或其他某种按位运算。
这可能吗?如果是怎么办?
PS:如果 1234 作为输入,它应该返回 4321。我只会反转整数和长数
最佳答案
怎么样:
int revnum = 0;
while (num != 0) {
revnum = revnum * 10 + (num % 10);
num /= 10;
}
return revnum;
代码需要一个非负输入。
这对你来说可能重要也可能不重要,但值得注意的是 getReverse(getReverse(x))
不一定等于 x
因为它不会保留尾随零。
关于java - 使用位移位反转数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472824/