Fakultät berechnen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Fakultät berechnen

    Hallo Leute.

    Ich will die Fakultät berechnen mit diesem kleinem Programm kann das Programm auch Compelieren und Ausführen sogar eine Zahl eingeben bekomme aber kein ergebnis zurück. (programm in )

    ?????????????? :[

    #include <stdio.h>
    int main ()
    {
    int n, i,erg,l ;
    scanf("%i",&n);
    l=n-1;
    for(i=1;i=l;i++)
    {
    erg=n*i;
    n=erg;
    }
    printf("%i\n", erg);
    return 0 ;
    }
  • hab gerade mal nen Code gebastelt..

    Quellcode

    1. #include <iostream>
    2. using namespace std;
    3. int main()
    4. {
    5. int Zahl, temp, c;
    6. cout << "Fakultaet von: ";
    7. cin >> Zahl;
    8. temp = Zahl;
    9. c = temp - 1;
    10. for(int b=1;b<temp;b++)
    11. {
    12. Zahl = Zahl * c;
    13. c--;
    14. }
    15. cout << "Ergebnis: " << Zahl << endl;
    16. system("PAUSE");
    17. return 0;
    18. }
    Alles anzeigen


    allerdings kann man keine hohen zahlen benutzen da int nicht "große" zahlen speichern kann

    Gruß Aalon;
  • Quellcode

    1. #include <stdio.h>
    2. int main ()
    3. {
    4. int n, i, erg;
    5. printf("Bitte Fakultät eingeben: ");
    6. scanf("%d", &n);
    7. erg = 1;
    8. for(i=1;i<=n;i++)
    9. {
    10. erg=erg*i;
    11. }
    12. printf("%d\n", erg);
    13. return 0 ;
    14. }
    Alles anzeigen

    :D

    oder noch kürzer:

    Quellcode

    1. #include <stdio.h>
    2. int main ()
    3. {
    4. int n, i, erg = 1;
    5. printf("Bitte Fakultät eingeben: ");
    6. scanf("%d", &n);
    7. for(i=1;i<=n;i++)
    8. erg=erg*i;
    9. printf("%d\n", erg);
    10. }
    Alles anzeigen
  • SeBa schrieb:

    Tja, um Rekursion zu verstehen, muss man zunächst Rekursion verstehen...


    ich verstehe die rekursion, ist ja nichts anderes als funktionengewurstel. trotzdem mag ichs nich und ich programmier das lieber anders, da eine rekursion nicht wirklich ein gewinn für die programmierung ist meiner meinung nach. ausser das man sich ein bisschen schreibarbeit spart passiert da nichts großartiges während der ausführungszeit. nen algo ohne rekursion ist mindestens genauso schnell wenn nicht noch schneller als nen algo mit rekursion.

    is aber auch schon etwas länger her als ich die rekursion gelernt hatte. habs für zu verschachtelt und zu kompliziert befunden und sehe aus oben genannten gründen auch keinen sinn sie anzuwenden. :) lass mich aber auch gerne eines besseren belehren, wie gesagt is lange her ^^
  • Letztendlich nehmen sich Rekursion und Iteration vom Funktionsumfang nichts. Alles was sich durch Rekursion lösen lässt, lässt sich auch durch Iteration lösen und umgekehrt.
    Man kann auch nicht pauschal sagen, das eine ist besser als das andere oder so, es gibt für beides Anwendungsfälle bei denen das eine Vorteile gegenüber dem anderen hat.
    So lassen sich die meisten Divide & Conquer Algorithmen rekursiv viel einfacher und eleganter lösen. Berechnungen von Folgen (was die Fakultät ja letztendlich auch ist) finde ich sind mit Iteration meist besser zu lösen, da die Rekursionstiefe sehr schnell sehr tief werden kann und somit die Gefahr von Stackoverflows besteht. Außerdem ist da der Overhead ziemlich groß.
  • nein löl. ich wollte das ganze hier nicht so vertiefen, wollte nur auf die möglichkeit hinweisen ^^ die fakultät berechnen ist ja geradezu ein musterbeispiel für diese art der programmierung.

    im übrigen hab ich gerade gelesen, weils mich jetzt doch genervt hat, dass es fälle gibt, in denen eine rekursion wohl die einzige lösungsmöglichkeit ist. in diesem buch wo ich das her hab steht jetzt nichts genaueres, wird nur mit dem themenbereich "datenstrukturen wie bäume" verknüpft. naja. es soll wohl so sein :) wobei wenn ich mir vorstelle wie so assembler code aussieht, dann will ich das irgendwie nich glauben, aber gut :)