# Scheinaufgabe



## ibn julaybib (26. Jun 2007)

Hallo,

ich muss eine Aufgabe programmieren und könnte Hilf gebrauchen. Wäre super nett, wenn mir jemand helfen würde.



> b) Schreiben Sie eine Methode
> void doppelDreieck(int n)
> die rekursiv folgende geometrische Figur der Größe n über System.out ausgibt
> (hier als Beispiel für n = 5):
> ...






```
public class Scheinaufgabe47 extends JavaKaraProgram {

	void linie(int n){
		if(n>0){
		System.out.print("*");
		linie(n-1);
		}
	else
	System.out.println();
	}

	void doppelDreieck(int n){ 
		if(n > 0){
		linie(n);
		doppelDreieck(n-1);
		}
	}

 
public void myProgram() {
    int leange = tools.intInput("Leange: ");
	doppelDreieck(leange);
  
  }
}
```

Das Problem liegt bei der rekursiven Methode doppelDreieck. Ich konnte nur das obere Dreieck programmieren. Für ein doppeltes Dreieck seh ich aber nur ein iterative Lösung (zwei for-Schleifen). Ich muss aber eine rekursive Methode schreiben...ich komme hier einfach nicht weiter. 

Hat jemand vielleicht einen Tipp? :bahnhof:


----------



## A.T. (26. Jun 2007)

```
void doppelDreieck(int n){ 
      if(n > 0){ 
        linie(n); 
        doppelDreieck(n-1); 
        line(n);
      }
}
```

Probier es mal so. Müsste funktionieren. Habe es aber nicht getestet!

Sobald du die Rekursion "abbrichst" wird alles was hinter dem erneuten Aufruf der Funktion noch an Code folgt der Reihe nach abgearbeitet.


----------



## ibn julaybib (26. Jun 2007)

Danke für die vielen Antworten doppelpost (sorry)

Es hat funktioniert. Hab den Tip von kleiner Held angewandt. 

Die Lösung:


```
void doppelDreieck(int n){
      if(n > 0){
      linie(n);
      doppelDreieck(n-1);
      linie(n);
      }
   }
```

Das ist auch die gleiche Lösung, wie sie AT (danke dür die Erläuterung dazu) gepostet hat. Danke nochmals  :lol:


----------

