sysout in rekursiver methode

wifojoe

Mitglied
Hi Leute🙂

Habe grad ne Methode erstellt für eine gewisse Zahlenfolge. Nun will ich es noch hinkriegen, dass ich
die sysouts in der Methode so platziere, dass ich nur die Methode mit ihrem parameter aufrufen muss
und die zahlen folge wird in der Konsole ausgegeben. Kann mir da vielleicht jemand weiterhelfen?

Java:
 public static int folge(int n){
		
		if(n == 0){
		return 0;
		
		}else if (n==1){
		return 3;
		}else
			return folge(n-1)+folge(n-1)+1;


		
	}
 
Fängt der Name der Folge mit F an? 😀

Da ich so schnell nicht erkennen kann, welche Folge es ist, kannst du entweder am Anfang n ausgeben oder das Ergebnis aus folge(n-1) + folge(n-1)+1 zwischenspeichern, ausgeben und dann erst zurückgeben.
 
ne des ist kein fibonnachi, die Folge geht so : 3, 7, 15, 31, 63....
ich komm nur nicht darauf wo ich sysouts hin platzieren muss damit es klappt :/
 
Also vorwärts wird das nichts da du die Zahlen ja rückwärts ermitteltst. Rückwärts kannst du sie ausgeben wenn du nicht direkt return von dem Aufruf machst sondern das Ergebnis einer variablen zuweist, diese ausgibst und dann erst return car machst.
Dazu natürlich noch ein sysout bei 0 und 1

Gruss

Claus
 
Das
Java:
return folge(n-1)+folge(n-1)+1;
ist das selbe wie das
Java:
return 2 * folge(n-1) + 1;

So sparst du dir einen ganzen Rekursionszweig.

Zu deiner Frage:
Einfach mal unnötige Rekursionen wegstreichen und dann das Ergebnis ausgeben, bevor du es weiterreichst.

Java:
	public static int folge(int n)
	{
		if (n == 0)
			return 0;

		if (n == 1)
			return 3;

		int result = 2 * folge(n - 1) + 1;
		System.out.println(result);
		return result;
	}
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben