Ich habe eine rekursive Funktion schreiben, die zwei ganze Zahlen akzeptiert. Die Funktion gibt "true" zurück, wenn die erste Ziffernziffer gleich der zweiten Zahl ist, andernfalls gibt die Funktion false zurück.Rekursion java - Testen ist die Summe der beiden Ganzzahlen sind gleich Boolesche Funktion
die Funktion immer True zurückgeben.
Was mache ich falsch?
Der Code:
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);
}
danken der
Was ist der Zweck Ihrer beiden Variablen 'sum1' und' sum2'? – tfosra
Jeder Aufruf hat seine eigene Version von 'sum1' und' sum2'. Wenn Sie einen Zustand zwischen Anrufen teilen möchten, übergeben Sie ihn als Argument. Verzichten Sie auf den Drang, global/instance vars zu verwenden. –
sum1 = Summe aller Ziffern der ersten Zahl Sum2 = Summe aller Ziffern der zweiten Zahl – liran