Rekursion

Javascrub

Mitglied
Ich habe folgenden Code:
[CODE lang="java" title="Rekursion 11.11"]public class Rekursion {
public static void main(String[] args) {
System.out.println(power(100));
}

static int power(int x)
{
if (x > 0)
return (2*power(x-1)+1);
else
return (1);
}
}[/CODE]

Als Konsolen Output kommt -1 raus... Warum ? Und wie löse ich die Aufgabe ? Brauche ich 2 Rekursionen ?
 
K

kneitzel

Gast
Also erst einmal ist die Frage, was den die Aufgabe genau ist.

So Du mit power(x) das 2 hoch x ausrechnen solltest, dann wäre die Formel schon falsch.
2^0 = 1 -> ok
2^1 = 2 * 2^0 -> Also das +1 ist da zuviel.

Aber ok, unabhängig davon (evtl. ist das ja genau das, was Du ausrechnen sollst):
a) Du verwendest int als Datentyp. Was kannst Du denn in einem int speichern? Wie groß ist das?

b) Und angenommen, mein Code wäre richtig: Wie viel Platz brauchst Du im Datentyp? (Dein Code erzeugt noch größere Zahlen, aber meine Berechnung reicht ja schon aus ...)
Bei 2^0 ist es ein Bit (0-1) - mit Vorzeichen 2! Da wir vorzeichenbehaftete Typen haben, also immer mit Vorzeichen!
Bei 2^1 sind es drei Bit (max 2).
Bei 2^2 sind es vier Bit (max 4).
bei 2^100 sind es damit vieviel Bit, die du im Typ benötigst?

c) Nun kannst Du a und b zusammen betrachten - was stellst Du fest?

d) Bezüglich Wertebereiche und dem Überschreiten kann man ja mal schauen, was da passiert:
Java:
int i = Integer.MAX_VALUE;
i++;
System.out.println(i);
Einfach mal ausprobieren...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Rekursion Aufrufbaum Allgemeine Java-Themen 7
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
districon Rekursion und Dynamische Programmierung Allgemeine Java-Themen 2
Zeppi Rekursion StackOverflowError Allgemeine Java-Themen 4
Zrebna Wie kann man endgültig aus einer Rekursion ausbrechen? Allgemeine Java-Themen 14
parrot Rekursion Aufgabe Allgemeine Java-Themen 12
B Rekursion Allgemeine Java-Themen 11
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
J Rekursion Mergesort Allgemeine Java-Themen 10
R Rekursion Allgemeine Java-Themen 3
R Programm zur Rekursion Allgemeine Java-Themen 5
V Rekursion Allgemeine Java-Themen 2
J Denkfehler Rekursion Allgemeine Java-Themen 5
I Raute mit Rekursion "zeichnen" Allgemeine Java-Themen 7
B Rekursion Allgemeine Java-Themen 2
B Rekursion Allgemeine Java-Themen 22
B Java Sternchen ausgeben mittels Rekursion Allgemeine Java-Themen 3
Hacer Rekursion- sumOfAllNodes Allgemeine Java-Themen 5
L Rekursion Binärbaum Allgemeine Java-Themen 7
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
Y Rekursion Allgemeine Java-Themen 19
M Permutation ohne Wiederholung mit rekursion Allgemeine Java-Themen 4
J Rekursion oder Iteration - verkettete Listen Allgemeine Java-Themen 8
T Pascalsches Dreieck ohne array und rekursion Allgemeine Java-Themen 9
P Rekursion Allgemeine Java-Themen 9
R Threading und Rekursion führen zu “GC overhead limit exceeded” Allgemeine Java-Themen 4
W Rekursion-Probleme mit return Allgemeine Java-Themen 35
C Rekursion Fibonacci Allgemeine Java-Themen 31
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
eQuest Rekursion Dauer Allgemeine Java-Themen 6
Weiti Swingworker und Rekursion Allgemeine Java-Themen 8
L fragwürdige Rekursion Allgemeine Java-Themen 4
L Kleine Rekursion Allgemeine Java-Themen 12
M Rekursion!! Allgemeine Java-Themen 8
J Rekursion in Schleifenkonstrukt wandeln Allgemeine Java-Themen 21
R Rekursion Ablauflogik Allgemeine Java-Themen 19
M Rückwärts geführte Rekursion Allgemeine Java-Themen 3
Schandro StackOverflowError bei Rekursion verhindern Allgemeine Java-Themen 14
G Werte bei Rekursion viel höher als erwartet Allgemeine Java-Themen 3
G Rekursion - Denksport Allgemeine Java-Themen 6
S Rekursion und StackOverflow Allgemeine Java-Themen 11
P Stackoverflow in Rekursion. Bin ich schuld oder Java? Allgemeine Java-Themen 9
W kompliziertes Konstrukt von Schleifen/If/else. Rekursion? Allgemeine Java-Themen 22
S Rekursion Allgemeine Java-Themen 2
Linad Tiefe der Rekursion als Abbruchbedingung Allgemeine Java-Themen 6
Linad Zahlensysteme -> Rekursion Allgemeine Java-Themen 4
N Frage zu einer Rekursion Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben