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
    0
    

    Ich verstehe Pyramide jetzt spontan so:

    0
     000
    00000
    

    Ist deins sicher gemeint? Bei dem anderen wäre die Rekursion nämlich auch ein bisschen einfacher.


  • Mod

    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.


Anmelden zum Antworten