我寫了一個接受兩個整數的遞歸函數。如果第一個數字的數量等於第二個數字,該函數返回true,否則該函數返回false。遞歸java - 測試是兩個整數的和是相等的布爾函數
函數總是返回true。
我在做什麼錯?
代碼:
public static boolean amountEqual(int num1, int num2) {
int sum1 = 0, sum2 = 0;
if (num1 == 0 && num2 == 0 && sum1 == sum2)
return true;
else if (num1 == 0 && num2 == 0 && sum1 != sum2)
return false;
sum1 += num1 % 10;
sum2 += num2 % 10;
return amountEqual(num1/10, num2/10);
}
感謝的
你的兩個變量'sum1'和'sum2'的目的是什麼? – tfosra
每個調用都有自己的'sum1'和'sum2'版本。如果你不想在兩個電話之間共享一個狀態,請將它作爲參數傳遞。避免使用全局/實例變量的衝動。 –
sum1 =第一個數字的所有數字的總和 Sum2 =第二個數字的所有數字的總和 – liran