C++ Fakultätsoperator

Dese

Commodore
Dabei seit
Jan. 2007
Beiträge
4.429
ich verstehe die frage nicht, was meinst du mit einem operator im programm einfügen? die c++ sprache um einen fakultätsoperator erweitern und somit diese in c++-programm sourcen einfügen?
oder eine funktion bauen, die die fakultät berechnet?
 
Dabei seit
Mai 2010
Beiträge
909
Was meinst du damit?

Das Zeichen selbst ("!") als Operatorzeichen?
Das Parsen eines Zeichens aus einem String?
Das Berechnen einer Fakultät im Programm?

Hört sich meiner Mienung nach auch sehr nach Hausaufgabe an, und das wird hier gar nicht gerne gesehen. Details wären daher nett.

EDIT:
@über mir: lol, dafür war ich ausführlicher. :p
 

asdfman

Commander
Dabei seit
März 2008
Beiträge
2.315
Code:
(define (fact n)
  (if (= n 1)
      1
      (* n (fact (- n 1)))))
Nur noch nach C++ übersetzen. Sollte nicht so das Problem sein.
 

Dese

Commodore
Dabei seit
Jan. 2007
Beiträge
4.429
@asdfman: wenn ich net schon wüsste, wie man mit c ne fakultätsfunktion macht, wär ich kein deut schlauer. was zum henker ist das für ne sprache?

ach während ich's mir so anschaue, das sit ja polnische notation lol
 

AirForce

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Okt. 2010
Beiträge
296
Nee das ist keine Hausaufgabe, nur ich wollte ein Programm machen das die Fakultät ausrechnen kann.
Z.B.: 7! = 5 040.
Sowas.
 

sebastian23

Ensign
Dabei seit
Juni 2008
Beiträge
180
Code:
int fakultaet(int zahl)
{
    int ergebnis = 1;
    
    for (int i=2;i<=zahl;i++)
    {
        ergebnis = ergebnis * i;
    }    
    
    return ergebnis;
}
 

Yuuri

Fleet Admiral
Dabei seit
Okt. 2010
Beiträge
13.004
Dann sieh nach wie die Fakultät gebildet wird und bastel dir was zusammen. Sowas geht in fünf Sekunden, wenn nicht weniger.
 

Dese

Commodore
Dabei seit
Jan. 2007
Beiträge
4.429
dann schreib das doch :rolleyes:. was hat dieses vorhaben mit dem einfügen eines operators in ein programm zu tun? naja wie auch immer...

double fak( double x) {
if(x>=1)
return 1
return fak( x-1);
}


das wäre die rekursive ala asdfman und damit langsame variante (nicht zu empfehlen).
wenn dann sollte man das iterativ programmieren, z.b. mit einer while- oder einer for-schleife. aber das kannst du dir bestimmt selber ausdenken, wie das geht. ;)

edit: mist einer hats schon verraten.
 

asdfman

Commander
Dabei seit
März 2008
Beiträge
2.315
Hier die iterative Variante:
Code:
(define (factorial n)
  (fact-iter 1 1 n))

(define (fact-iter product counter max-count)
  (if (> counter max-count)
      product
      (fact-iter (* counter product)
                 (+ counter 1)
                 max-count)))
 

AirForce

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Okt. 2010
Beiträge
296
Programmiere ein Taschenrechner Programm, und nun will ich den Fakultätsoperator einfügen.
 

NullPointer

Lt. Commander
Dabei seit
Okt. 2009
Beiträge
1.570
Die Sprache von asdfman ist Lisp - welcher der diversen Dialekte es genau ist, könnte ich zwar nicht erkennen, tippe aber seiner Signatur wegen mal auf Scheme :)
 
Top