/ / Rekursionsparameter Problem [geschlossen] - Java, Integer-Division

Rekursion Parameter Problem [geschlossen] - Java, Integer-Division

public void mystery1(int n) {
if (n <= 1) {
System.out.print(n);
} else {
mystery1(n / 2);
System.out.print(", " + n);
}
}

Was gibt dieser Code für ungerade Zahlen. Wenn wir es teilen, wird es keine ganze Zahl sein.

Antworten:

1 für die Antwort № 1

Es gibt kein Geheimnis, weil das Ergebnis der Ganzzahldivision in Java eine Ganzzahl ist.


1 für die Antwort № 2

Wenn Sie in Java oder den meisten anderen Programmiersprachen eine Ganzzahl durch eine Ganzzahl teilen, ist das Ergebnis eine Ganzzahl. Wenn eine Dezimalzahl vorkommt, sagen Sie zum Beispiel:

5/2=2.5

Dann wird die Zahl vor dem Dezimalpunkt als Ganzzahl behandelt und 2 ausgewählt.

Wenn Sie die Ganzzahl explizit in float oder double konvertieren möchten, können Sie eine der folgenden Konvertierungen verwenden:

(float) 3/2;

(double) n/2;

Das Obige konvertiert es explizit in eine Dezimalzahl.


0 für die Antwort № 3

n / 2Dies ist eine Ganzzahldivision, bei der der Bruchteil ignoriert wird.

System.out.println(3/2); // prints 1
System.out.println(3.0/2); // prints 1.5
System.out.println(3/2.0); // prints 1.5
System.out.println(3.0/2.0); // prints 1.5

0 für die Antwort № 4

Param wird auf int gerundet. Wenn param beispielsweise 5 ist, wird die Funktion beim nächsten Aufruf mit param 2 ausgeführt