2015-01-31 46 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;