我的老师要求我们创建一个int返回方法,该方法将仅使用3行反转传入的int,没有字符串,也不使用Math类,方法中没有循环,也不能使用实例变量或其他辅助方法。关于如何做到这一点的任何线索?我和我的朋友还没有弄清楚那些特定的参数。
答案 0 :(得分:0)
试试这个...方法reverseDigits()以递归方式调用自身, 没有字符串,没有数学库,没有循环,但递归就在那里..
public class Test {
static int rev_num = 0, base_pos = 1;
public static int reverseDigits(int i){
if(i > 0)
{
reverseDigits(i/10);
rev_num += (i%10)*base_pos;
base_pos *= 10;
}
return rev_num;
}
public static void main(String[] args) {
System.out.println(Test.reverseDigits(123));
}
}
答案 1 :(得分:0)
这似乎适用于不会发生溢出的所有整数输入。请注意使用可变长度参数列表,用于在递归函数链中传递额外信息。
public class Reverse {
public static int reverse(int... n) {
if (n.length == 1) return reverse(n[0]/10,n[0]%10);
else if (n[0] == 0) return n[1];
else return reverse(n[0]/10,10*n[1]+n[0]%10);
}
public static void main(String[] args) {
System.out.println(reverse(Integer.parseInt(args[0])));
}
}