作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经尝试了一段时间,但无法让它发挥作用。我试图找到一种不使用字符串或数组来反转整数的方法。例如,123 应该反转为整数形式的 321。
我的第一次尝试:
/** reverses digits of integer using recursion */
public int RevDigs(int input)
{
int reverse = 0;
if(input == 0)
{
return reverse;
}
int tempRev = RevDigs(input/10);
if(tempRev >= 10)
reverse = input%10 * (int)Math.pow(tempRev/10, 2) + tempRev;
if(tempRev <10 && tempRev >0)
reverse = input%10*10 + tempRev;
if(tempRev == 0)
reverse = input%10;
return reverse;
}//======================
我也尝试过使用这个,但它似乎弄乱了中间数字:
/** reverses digits of integer using recursion */
public int RevDigs(int input)
{
int reverse = 0;
if(input == 0)
{
return reverse;
}
if(RevDigs(input/10) == 0)
reverse = input % 10;
else
{
if(RevDigs(input/10) < 10)
reverse = (input % 10) *10 + RevDigs(input/10);
else
reverse = (input % 10)* 10 * (RevDigs(input/10)/10 + 1) + RevDigs(input/10);
}
return reverse;
}
我尝试查看网站上的一些示例,但无法让它们正常工作。为了进一步澄清,我不能在这个项目中使用字符串或数组,而必须使用递归。有人可以帮我解决这个问题吗?谢谢。
最佳答案
使用两种方法怎么样
public static long reverse(long n) {
return reverse(n, 0);
}
private static long reverse(long n, long m) {
return n == 0 ? m : reverse(n / 10, m * 10 + n % 10);
}
public static void main(String... ignored) {
System.out.println(reverse(123456789));
}
打印
987654321
关于java - 使用递归来反转整数而不使用字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20670444/
我是一名优秀的程序员,十分优秀!