Ich habe versucht, herauszufinden, wie diese Frage zu lösen, aber ich verstehe nicht. Wenn ich nehme , b
ist nicht ==0
und b%2=1
so dann habe ich mystery(2+2, 25/2) + 2
. Ich verstehe nicht, was ich mit der +2
am Ende und ich verstehe nicht, ob ich a
und b
hinzufügen oder den Code erneut mit den neuen Werten tun soll.Brauchen Sie Hilfe Java rekursiv zu lösen
Was sind die Werte für mystery(2, 25)
bzw. ?
public static int mystery(int a, int b) {
if (b == 0) return 0;
if (b % 2 == 0) return mystery(a+a, b/2);
return mystery(a+a, b/2) + a;
}
Antwort zur Auswahl:
33554432, 177147
525, 1331
50, 33
75, 44
einen Bleistift und Papier holen und die Schritte auszuschreiben. Sie können Rekursion verstehen, wenn Sie fertig sind. – duffymo
Debuggen Sie es in Ihrer IDE. Sie können also durch Ihren Code gehen und beobachten, wie sich die Variablen ändern. – vanje
Haben Sie diese Frage vergessen? – Vitorlui