2015-01-31 100 views
0

我想仅在递归中发送数字本身而不是更多变量!如何使用递归来反转一个数字

所以,我做了一个代码,使操作,但我没有停止点。

代码:

public static int upsideDown (int number) { 
    number += (number%10)*(Math.pow(10, String.valueOf(number).length())); 
    number %= 10; 
    return upsideDown (number); 
} 
+0

问题不明确, – 2015-01-31 21:50:23

+3

继续并使用更多变量。编译器不会介意。 – 2015-01-31 22:01:30

+0

传递int的probkem为零:如果你反转1002,你会得到21,因为在第一次迭代时会丢弃前导零。你可以使用String参数类型吗? – Bohemian 2015-01-31 23:46:07

回答

0

您需要存储您正在使用一个局部变量工作修改number,而不是数字。

您需要 - 而不是number %= 10 - (整数)除以10。

您需要通过以前存储的数字提高到string.length - 1的权力;你需要加上这个结果给递归调用的返回值为upsideDown。 实际上,通过循环length - 1,循环中每次乘以10将比使用pow更有效。

退出代码在方法开始时应该简单地为if (number == 0) return 0;