我正在研究一個leetcode: 給定一個非負整數num,重複添加其所有數字,直到結果只有一個數字。Leetcode數字根目錄
例如:
鑑於NUM = 38,則處理是這樣的:3 + 8 = 11,1 + 1 = 2。由於2僅具有一個數字,返回它。
我的代碼如下,但是當輸入爲20時,它返回1.我不知道爲什麼盯着它20分鐘,任何人都可以幫忙?
非常感謝!
public class Solution {
public int addDigits(int num) {
if(num%10 == num){ //20%10 = 0//2%10 == 2
return num;
}
int sum = 0;
while(num%10 != num){
sum += (num%10); //sum = 0
num /= num; //num =2
}
return addDigits(sum + num%10);// 0+2
}
}
你有沒有通過調試器的單步執行代碼?如果不是,那就是開始的地方。如果你有,告訴我們你發現了什麼。 –