Hilfe Pyramide mit Rekursion
-
Hallo an Alle!!!!
Ich brauche dringend Hilfe! Bin am Verzweifeln. Seit Tagen versuche ich eine Aufgabe zu lösen, wo man eine Pyramide aus Nullen erstellen soll. Im ersten Teil der Aufgabe geht es darum diese Iterativ zu lösen. Das habe ich endlich geschafft:#include <iostream> using namespace std; int main() { int groesse; // Höhe des Dreiecks int i,k,j; // Zählvariablen for (i = 0,k=0; i < ((groesse * 2) - 1); i++,k++) { for (j = 0; j <= i && j<((groesse * 2) - 1)-k; j++) { cout << "0"; } cout << endl; } system("pause"); return 0; }Jetzt soll das gleiche aber mit Rekursion machbar sein. Und zwar mit nur einer Funktion. Ich komme aber nicht drauf. Ich habe es jetzt fertig, jedoch mit 2 Funktionen:
// Rek. Funktion für untere Hälfte des Dreiecks void dreieck_u(int x) { if (x == 1) // Rek. Anker { cout << "0" << endl; } else { // Rek. Schritt mit einer For-Schleife fürs Auffüllen der Zeilen for (int i = 0; i < x; i++) // Die Anzahl der 0 in jeder Zeile wird verkleinert { cout << "0"; } cout << endl; dreieck_u(x - 1); } } // Rek. Funktion für obere Hälfte des Dreiecks void dreieck_o(int x) { if (x == 1) // Rek. Anker { cout << "0" << endl; } else { dreieck_o(x - 1); // Rek. Schritt mit einer For-Schleife fürs Auffüllen der Zeilen for (int i = 0; i < x; i++) // Die Anzahl der 0 in jeder Zeile wird vergößert { cout << "0"; } cout << endl; } }Kann mir da jemand vielleicht helfen? Ich bin über jede Hilfe dankbar!
Gruß
Johann
-
Du hast ja aktuell das:
0 00 000 00 0Ich verstehe Pyramide jetzt spontan so:
0 000 00000Ist deins sicher gemeint? Bei dem anderen wäre die Rekursion nämlich auch ein bisschen einfacher.
-
Vermutlich das, was Nathan gesagt hat.
Deine jetzige Ausgabe könntest du erzeugen, indem du der Funktion die gewünschte Gesamtgröße und die aktuelle Stufennummer übergibst. Dann kann die Funktion anhand selber berechnen, wie groß die aktuelle Stufe sein muss und wann die Richtung umgekehrt werden muss.