Fakultät berechnen

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • 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..

    Source Code

    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. }
    Display All


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

    Gruß Aalon;
  • Source Code

    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. }
    Display All

    :D

    oder noch kürzer:

    Source Code

    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. }
    Display All
  • Qualmi wrote:

    rekursiv kann man das ganze auch noch berechnen.

    das wäre aber glaub ich das einzig existierende problem, dass ich so lösen würd. ich hasse rekursion :thumbdown:

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

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blocked Image: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • SeBa wrote:

    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 :)