1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Fakultät in c programmieren

  • Smartie
  • 9. Juli 2008 um 11:02
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Smartie
    Punkte
    70
    Beiträge
    10
    • 9. Juli 2008 um 11:02
    • #1

    Hallo Leute, ich bräuchte mal wieder eure Hilfe.

    Kann mir vielleicht jemand sagen, wie man eine Fakultät einer Zahl in C programmiert?

    Die Aufgabe sieht folgerndermaßen aus, und es geht mir dabei um den Nenner:

    sin (x) = x - x^3 + x^5 + x^7
    ---- ---- ---- ...
    3! 5! 7!

    MfG Smartie

  • sauzachn
    Punkte
    3.101
    Beiträge
    606
    • 9. Juli 2008 um 11:08
    • #2

    Geht sowohl rekursiv als auch iterativ.

  • Smartie
    Punkte
    70
    Beiträge
    10
    • 9. Juli 2008 um 11:14
    • #3

    Vielen Dank, das hat mich schonmal ungemein weitergeholfen...

  • fytzi
    Punkte
    329
    Beiträge
    61
    • 9. Juli 2008 um 11:34
    • #4

    So wäre es rekursiv:

    int fak (int val) {
    if (val > 1) {
    return fak(val-1) * val;
    }
    }

  • Kampi
    Punkte
    7.828
    Beiträge
    1.468
    • 9. Juli 2008 um 11:47
    • #5

    und so iterativ:

    Code
    int erg=1;
    int zahl=5;
    int i;
    
    
    for(i = 2; i <= zahl; i++)
       erg *= i;
  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 9. Juli 2008 um 13:23
    • #6
    Zitat von sauzachn

    Geht sowohl rekursiv als auch iterativ.

    Parallelisiert gehts auch, siehe "reduce"-Beispiel von Nvidias CUDA.

  • gelbasack
    Punkte
    6.525
    Beiträge
    1.241
    • 9. Juli 2008 um 14:45
    • #7

    Aber rechne nicht für jedes Element der Taylorreihe die komplette Fakultät...

  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 9. Juli 2008 um 14:48
    • #8

    Premature optimization!

  • gelbasack
    Punkte
    6.525
    Beiträge
    1.241
    • 9. Juli 2008 um 15:53
    • #9
    Zitat von hal

    Premature optimization!

    Naja, die Taylorreihe is' eine kleine Schleife. Das zerstört doch nicht den Code, wenn man sich die ganzen Fakultätsaufrufe spart... hängt aber natürlich auch von der Anwendung ab.

  • Wolfibolfi
    Punkte
    14.936
    Beiträge
    2.942
    • 9. Juli 2008 um 18:53
    • #10

    Wenn eh keine Variablen im Nenner vorkommen, kannst dir den Zirkus auch sparen, und einfach das Ergebnis hinschreiben.:thumb:

  • viper
    Punkte
    103
    Beiträge
    20
    • 9. Juli 2008 um 20:08
    • #11

    So wäre es obskur:

    Code
    unsigned n=<zahl>, f=1;
    while(n&&(f*=n--));
  • Paulchen
    Gast
    • 9. Juli 2008 um 21:01
    • #12
    Code
    >++++++++++>>>+>+[>>>+[-[<<<<<[+<<<<<]>>[[-]>[<<+>+>-]<[>+<-]<[>+<-[>+<-[>
    +<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>>>>+>+<<<<<<-[>+<-]]]]]]]]]]]>[<+>-
    ]+>>>>>]<<<<<[<<<<<]>>>>>>>[>>>>>]++[-<<<<<]>>>>>>-]+>>>>>]<[>++<-]<<<<[<[
    >+<-]<<<<]>>[->[-]++++++[<++++++++>-]>>>>]<<<<<[<[>+>+<<-]>.<<<<<]>.>>>>]
  • Wolfibolfi
    Punkte
    14.936
    Beiträge
    2.942
    • 9. Juli 2008 um 22:47
    • #13

    Was sollte eigentlich auf dem Screenshot drauf sein? Ich hab mein ganzes C: abgesucht, aber nix gefunden.:wein:

  • Kampi
    Punkte
    7.828
    Beiträge
    1.468
    • 10. Juli 2008 um 11:58
    • #14

    Paulchen, seit wann ist brainfuck C?
    C ist aber manchmal brainfuck.
    whitespace darf nicht fehlen!

  • Wolfibolfi
    Punkte
    14.936
    Beiträge
    2.942
    • 10. Juli 2008 um 21:12
    • #15

    Geil, das muss ich mir ausdrucken!:shinner:

  • pernhard
    Punkte
    1.269
    Beiträge
    244
    • 10. Juli 2008 um 22:03
    • #16
    Zitat von Kampi

    Paulchen, seit wann ist brainfuck C?
    C ist aber manchmal brainfuck.
    whitespace darf nicht fehlen!


    wtf?

    -v bitte!

  • spinball
    Punkte
    1.192
    Beiträge
    223
    • 10. Juli 2008 um 22:16
    • #17

  • Kampi
    Punkte
    7.828
    Beiträge
    1.468
    • 11. Juli 2008 um 00:25
    • #18
    Zitat von pernhard

    wtf?

    -v bitte!

    Paulchens loesung war in brainfuck, "meine" war in whitespace. ich hoffe das ist verbose genug.

  • pernhard
    Punkte
    1.269
    Beiträge
    244
    • 11. Juli 2008 um 09:03
    • #19
    Zitat von Kampi

    Paulchens loesung war in brainfuck, "meine" war in whitespace. ich hoffe das ist verbose genug.

    thx, whitespace kannte ich noch nicht.

  • ThomasW
    Punkte
    141
    Beiträge
    28
    • 11. Juli 2008 um 22:25
    • #20
    Code
    f(v)??<return v?v*f(v-1):1;??>

    Einmal editiert, zuletzt von ThomasW (11. Juli 2008 um 22:27)

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum