Potenz selber berechnen, Rekursiv.

hello_autumn

Mitglied
Hallo! Ich habe ein blödes Problem Ich soll eine Aufgabe machen, wo ich meine Potenz berechne und das Rekursiv. Okay, alles schön und gut. Ich verstehe die Rekursion nicht.

Ich weiß nur:
1. Main wird aufgerufen, da drinne ist die Rekursion, diese zeigt dann auf meine power.
2. Power berechnet meine Potenz, schickt die wieder zurück zur Main.
3. Main zeigt die an.

Aber ich kapier das mit dem Klammern nicht ganz... Also in der Main-Methode.

Wir haben keinen Beispielcode bekommen, oder einen Tipp. Ich habe folgendes selber geschrieben:

Java:
import java.util.Scanner;


public class Power {

	public static int power(int x, int n, scan) {
		// Mein Exponent zuerst (x), dann die Basis (n)!!
		
		x = scan.nextInt();
		n = scan.nextInt();
	
			if (x==0) 
				return 1;
			// Falls Exponent 0, dann die 1.
			
			int a;
			
			else 
				
				for (i=0, i<x, i++) {
				??
				}
				return 
	
	
	}

	public static void main(String args[]) {
		Scanner scan = new Scanner(System.in);
		System.out.println(power(x,n));
	
	}

}

Ich weiß nicht, ob das richtig ist. Meine nächste Frage wäre, darf ich nach einer if-Abfrage, mal einfach im else-Zweig eine for-Schleife reinwerfen?? Da ich meine Potenz, ja Basis mal x. Also x ist meine Potenz...

Hach, ich bin schon durcheinander... Mag mir jemand helfen? :(
 
Zuletzt bearbeitet:

JCODA

Top Contributor
Rekursion bedeutet, dass du keine Schleifen benutzten sollst, sondern die gleiche Methode mit anderen Parametern aufrufen sollst.
Tipp: falls mehr als eine Anweisung zu einem If gehören, sollten diese Anweisungen per geschweifte Klammern zusammengefasst werden. (Da sonst Java nur die erste Anweisung zum If dazuzählt. )

Bei Potenzen gibts ja zwei Fälle, entweder der
Exponent ist 0 => Ergebnis ist 1
oder
Exponent ist größer als 0, dann : x^n = x* x^(n-1)

Versuche das in deine Rekursionsmethode reinzubringen.

Die Zahlen x und n sollten nicht in der Rekursionsmethode, sonder schon vorher abgefragt werden, da die Rekursionsmethode häufiger aufgerufen werden soll.
 
Zuletzt bearbeitet:

hello_autumn

Mitglied
Okay, also die Klammer sind gesetzt und die x,n aus der Main-Methode raus. (Ich hoffe du meintest das :) )

Folgendes habe ich erdacht:

Java:
import java.util.Scanner;


public class Power {

	public static int power(int x, int n, scan) {
		// Mein Exponent zuerst (x), dann die Basis (n)!!
		
		x = scan.nextInt();
		n = scan.nextInt();
	
			if (x==0) {
				return 1;
			// Falls Exponent 0, dann die 1.
			}
			int a;
			else {
				a = n*power(x-1);
				return a;
			}
	
	}

	public static void main(String args[]) {
		Scanner scan = new Scanner(System.in);
		System.out.println(power(a)));
	
	}

}

Ich soll ja die Potenz wieder mit der Rekursion berechnen. Es dämmert mir da etwas mit den Hanoitürmen... deswegen das n*power(x-1).

Darf man das so? Ist das in die richtige Richtung gedacht? ???:L


Klar... Rekursion, man will ja Schleifen gerade vermeiden und ich werfe da welche rein... xD
 
Zuletzt bearbeitet:

JCODA

Top Contributor
Also, teilweise besser, aber compilen tut das ja immernoch nicht, mach folgendes:

x = scan.nextInt();
n = scan.nextInt();

in die main methode und an die methode werden die beiden werte x und n übergeben.

entferne ",scan" in public static int power(int x, int n, scan) {

entferne "int a;" (in der mitte der if-Abfrage ... zu welchem teil soll den dies variable gehören ... wenn dann vielleicht nach dem else ... aber du kannst auch einfach return n* power(x,n-1) schreiben...)

die meisten Matheleute verwenden das x als "Basis" und das n als Exponent ... deswegen ist das sehr verwirrend wenn du die Buchstaben hier vertauschst.
 

hello_autumn

Mitglied
Okay. Sieht schon schöner aus :)

Ehm, zu dem int a. Ich muss doch irgendetwas zurückgeben zum Anzeigen? Also meinen Wert, dann in eine Variable packen, um der Main-Methode zu zeigen, was es überhaupt greifen soll. Ist das richtig so?

Habs jetzt so gemacht:

Java:
import java.util.Scanner;


public class Power {

	public static int power(int x, int n) {
		// Mein Exponent zuerst (x), dann die Basis (n)!!
	
			int a;
	
			if (x==0) {
				return 1;
			// Falls Exponent 0, dann die 1.
			}
			else {
				return a= n*power(n,x-1);
			}
	
	}

	public static void main(String args[]) {
		Scanner scan = new Scanner(System.in);
		
		int x = scan.nextInt();
		int n = scan.nextInt();
		
		System.out.println(power(a));
	
	}

}

Du hast aber geschrieben, a brauche ich nicht. Jetzt denke ich, die Main-Methode kriegt das von geisterhand zu sich.

Ja, leider ist das so in der Aufgabe. Ich soll als erstes das x eingeben, welches meine Potenz ist. n Basis, als zweite.
 

JCODA

Top Contributor
Okay, also ich würde es so machen:

Java:
import java.util.Scanner;
 
 
public class Power {
 
	public static int power(int x, int n) {
		// Mein Exponent zuerst (x), dann die Basis (n)!!
			if (x==0) { // Falls Exp. 0 => Ergebnis = 1
				return 1;			
			}else {
				return n*power(x-1,n);
			}
 
	}
 
	public static void main(String args[]) {
		Scanner scan = new Scanner(System.in);
 
		int x = scan.nextInt();
		int n = scan.nextInt();
 
		System.out.println(power(x,n));
                scan.close();
	}
 
}

Edit:

Die Dinge der der Klammer nach Methoden sind Übergabeparameter, bei public static int power(int x, int n) { gibt "int" an, dass int der Rückgabe wert ist, und der methodenaufruf selbst also power(x,n) gibt den wert zurück, der die Methode nach return stehen hat.
 
Zuletzt bearbeitet:

hello_autumn

Mitglied
Ahhh, ich freue mich :D

Ich hab jetzt weiter experimentiert. Hab folgendes gehabt:

Java:
import java.util.Scanner;


public class Power {

	public static int power(int x, int n) {
		// Mein Exponent zuerst (x), dann die Basis (n)!!
	
			int a;
	
			if (x==0) {
				return 1;
			// Falls Exponent 0, dann die 1.
			}
			else {
				return a= n*power(n,x-1);
			}
	
	}

	public static void main(String args[]) {
		Scanner scan = new Scanner(System.in);
		
		int x = scan.nextInt();
		int n = scan.nextInt();
		
		System.out.println(power(x,n));
	
	}

}

Kommt aber bei 0, eine 1. Bei anderen Zahlen eine 0.

Ich hab aber die Power(x-1,n) falsch :D

Danke! Du hast mir geholfen doch auf die Sprünge :D Ich hab zu schnell dir geschrieben :)

Ich freu mich grad. Ich glaube ich verstehe diese Rekursion :D

Nochmals Danke! :toll:

Mache direkt eine weitere Aufgabe :) :applaus:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
F Potenz ausrechnen Hilfe! Java Basics - Anfänger-Themen 7
E Erste Schritte Potenz Negativ (rekursiv) Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
A DecimalFormat und wissenschatliche (Potenz-)Schreibweise Java Basics - Anfänger-Themen 6
A mantisse var * 10 hoch potenz var Java Basics - Anfänger-Themen 2
C Gleichung mit Potenz mit einer Unbekannten lösen Java Basics - Anfänger-Themen 5
R 2er Potenz mit vorgegebenem Schema Java Basics - Anfänger-Themen 5
W Potenz Java Basics - Anfänger-Themen 6
J Methoden Rekursive Potenz ohne Math.Pow() Java Basics - Anfänger-Themen 9
M Potenz berechnen Java Basics - Anfänger-Themen 3
P Usereingabe und Potenz berechnen Java Basics - Anfänger-Themen 16
2 2er Potenz berechnen Java Basics - Anfänger-Themen 17
K Potenz mit Summer der ungeraden Zahlen Java Basics - Anfänger-Themen 14
E Potenz mit Modulo (über for-Schleife) berechnen Java Basics - Anfänger-Themen 8
M Potenz mithilfe rekursiver Funktion Java Basics - Anfänger-Themen 13
Haubitze_Broese Potenz einer Zahl, der Exponent ist dabei eine beliebige ganze Zahl? Java Basics - Anfänger-Themen 10
J programm für kleinste potenz Java Basics - Anfänger-Themen 10
G Potenz in Java Java Basics - Anfänger-Themen 20
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Methode selber schreiben Java Basics - Anfänger-Themen 5
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
P Selber Programmieren lernen oder Uni? Java Basics - Anfänger-Themen 12
M Erste Schritte Ordner im selber Verzeichnis wählen Java Basics - Anfänger-Themen 1
J Kann eine .jar sich selber Löschen? Java Basics - Anfänger-Themen 5
B Variablen im Java-Code selber "ausrechnen" Java Basics - Anfänger-Themen 8
G Erste Schritte Galerie mit Ajax selber schreiben Java Basics - Anfänger-Themen 23
B Datentypen Wurzel auf n stellen nach dem Komma selber zeihen -> double zu schlecht Java Basics - Anfänger-Themen 19
Anfänger2011 selber geschriebene Programme nutzen Java Basics - Anfänger-Themen 11
K Erste Schritte Kalender selber erstellen? Java Basics - Anfänger-Themen 3
S Rückgabetyp - Objekt gibt sich selber zurück Java Basics - Anfänger-Themen 4
B zwei Jar Dateien selber paketname Java Basics - Anfänger-Themen 9
S Generics - CaseInsensitiveMap selber schreiben? Java Basics - Anfänger-Themen 5
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
M Alle Objecte mit selber Vairable Java Basics - Anfänger-Themen 3
C Exception selber schreiben Java Basics - Anfänger-Themen 4
H2SO3- wie kennt ein button sich selber? Java Basics - Anfänger-Themen 21
TiME-SPLiNTER mehrere HTTPRequests mit selber Verbindung Java Basics - Anfänger-Themen 2
G Gleichzeitiges Verarbeiten von Variablen 2er Obj. selber Kl. Java Basics - Anfänger-Themen 5
H PingPong selber schreiben Java Basics - Anfänger-Themen 28
C Objekt soll sich selber einer Variablen zuweisen. Java Basics - Anfänger-Themen 6
G Die Klasse Stack selber schreiben. Java Basics - Anfänger-Themen 2
P Button selber entwerfen bzw. suchen Java Basics - Anfänger-Themen 3
U Klasse ruft sich selber auf? Java Basics - Anfänger-Themen 2
M Eine Klasse die sich selber öffnen kann. Java Basics - Anfänger-Themen 4
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben