【发布时间】:2021-10-05 03:13:49
【问题描述】:
我想反转一个 int 但它不起作用。例如,123 应该返回 321,但打印出来的数字是 356。
public class x {
public static void main(String[] args) {
System.out.println(reverse2(123, 0));
}
static int reverse2(int a, int i) {
if(a == 0) {
return 0;
} else {
i = i*10 + a%10;
System.out.println(i);
return i += reverse2(a/10, i);
}
}
}
【问题讨论】:
-
i = i*10 + a%10;为什么? -
如果您想使用递归创建“打印反向整数”函数,则您的
reverse2函数中不需要两个ints。看起来您知道如何使用% 10技巧获得最右边的数字,那么为什么所有多余的复杂性?在再次调用递归函数之前,只需执行% 10获取最右边的数字并执行/ 10移动数字。 -
对不起,但我不知道如何只使用一个 int,我使行 i = i*10 + a%10;基于使用 for 循环的教程
-
@dan1st 我根据使用 for 循环的教程制作它