rekursion addition



  • das führt doch zu nichts. versuchen wir doch lieber gemeinsam probleme zu lösen anstatt uns gegenseitig zu dissen...

    mit dem satz ist mir ein platz im dr. sommer team sicher 😉

    lg lolo



  • noobLolo schrieb:

    ... dr. sommer team sicher 😉 ...

    du meintest zwei bei kallvas 😃



  • Big Brother schrieb:

    So habe ich es auch anfangs verstanden, aber das ist wohl nicht gemeint.
    Guckst du ensis Post um 22:51:52 am 08.04.2010 😉

    Oki doki - dann hatte ensi aber ein Problem, sich bzw. es korrekt zu erklären.

    Hätte er besser gesagt: So wie Fakultät aber mit "und" statt mit "mal". 😉



  • ensi schrieb:

    * ich weiß nicht, woran es liegt, aber es gibt einen stack overflow - kann mir jemand helfen bitte?

    Der Fehler ist nicht in Deinem Code. Deswegen kannste ihn auch nicht finden.
    Vielleicht compilierst Du aus Versehen eine andere Datei.
    Beim MS-Compiler ist die *.ncb korrupt und muß (während die IDE geschlossen ist) gelöscht werden.
    Sowas halt.



  • volkard schrieb:

    void anzeigeVon1Bis(int obergrenze){
    	if(obergrenze){
    		anzeigeVon1Bis(obergrenze-1);
    		printf("%d ",obergrenze);
    	}
    }
    

    Da könnte man noch die Notwendigkeit eines Rekursionsstacks für die Ausgaben entfernen:

    void anzeigeVonBis(int untergrenze, int obergrenze)
    {
        if (untergrenze <= obergrenze)
        {
            printf("%d ", untergrenze);
            anzeigeVonBis(untergrenze + 1, obergrenze);
        }
    }
    
    void anzeigeVon1Bis(int obergrenze)
    {
        anzeigeVonBis(1, obergrenze);
    }
    

    Und dann könnte man eine neues Schlüsselwort einführen, um sich nicht darauf verlassen zu müssen, dass der Compiler erkennt, dass kein Stack notwendig ist:

    void anzeigeVonBis(int untergrenze, int obergrenze)
    {
        while (untergrenze <= obergrenze)
        {
            printf("%d ", untergrenze);
            untergrenze++;
        }
    }
    

    🙂


Anmelden zum Antworten