fakultät ohne if anweisungen
-
Schreiben Sie eine Funktion, welche die Fakultät einer gegebenen Zahl n berechnet, ohne dass Sie eine if-Anweisung, eine switch-Anweisung oder eine Schleife verwenden.
des is de aufgabenstellung also darf ich da return eh verwenden oder wie?
-
Also für mich ist return kein if oder switch. Aber vielleicht sieht das dein Aufgabensteller ja anders

-
Erstaunlich das der Compiler hier keine Warnung rausschmeißt

-
warum welche warnung sollt denn kommen?
-
Du gibst in einer Funktion, die ein int zurückgeben soll, gar nix zurück (weil ja kein return-statement da ist). Normalerweise sollte das doch auch gar nicht erst kompilieren? Die "main"-Funktion ist die einzige Funktion mit Rückgabewert, in der man laut (C++) Standard ein return-statement weglassen darf.
-
VivaLaMotte schrieb:
Schreiben Sie eine Funktion, welche die Fakultät einer gegebenen Zahl n berechnet, ohne dass Sie eine if-Anweisung, eine switch-Anweisung oder eine Schleife verwenden.
des is de aufgabenstellung also darf ich da return eh verwenden oder wie?
Ist da nicht Rekursion die Wahl ??
Oder was sehe ich hier falsch ??
-
ja schon rekursion aber halt ohne if und dafür mit ? und : so denk ich ma das!
-
Du könntest auch total ausgefuchst sein, und etwas wie:
unsigned int fak( unsigned int n ) { unsigned int out = 1; n>1 && (out=n*fak(n-1)); return out; }schreiben!
-
ich kenn mi mit dem unsigned net aus. was macht des out?
-
Du solltest dich mal mit den Grundlagen beschäftigen. Wie Martin schon sagt ist es verwunderlich, dass der Compiler nicht mal ne Warnung ausgibt.
Das out is ne Variable vom Typ UINT, also eine vorzeichenlose Ganzzahl.
Man sollte nur bei solchen Rekursionen die Rekursionstiefe begrenzen, da man sonst auch sich schnell den Speicher zufährt. Mit jedem Aufruf der Funktion wird ja eine komplette Instanz von Variablen angelegt wird.