Jeder in seiner Lieblingssprache

2 Klassen von Lösungen

Man sollte eigentlich 2 Klassen von Lösungen unterscheiden:

die genauen (z.B. die Java mit BigInteger, Smalltalk, ...) und die Näherungen (die sind einfach)
 
In C++ als rekursive Funktion:
Code:
#include <iostream.h>

 double Fakultaet(int n);
 
 void main(void)
 {
	 cout<<Fakultaet(100);
 }

 double Fakultaet(int n)
 {
	 if(n==0)
	 {
		return 1;
	 }
	 else
	 {
	 return (n*Fakultaet(n-1));
	 }
 }
 
Zuletzt bearbeitet:
Also hier ein Beispiel in Gofer (funktional):

Code:
fak::Int->Double --Definitionsbereich festlegen --

fak n = if( n == 0) then 1.0 else primToDouble(n) * fak n-1

Aufruf im Intepreter:

Code:
fak 100


Gruß

RedWing
 
Zuletzt bearbeitet:
Nochmal PHP, rekursiv.

PHP:
<?php
function fac($in)
{
    if ($in < 2) {
        return $in;
    }
    return ($in * fac($in - 1));
}

print fac(100);
?>
 
keiner Visual Basic?

Dann versuch ich das mal:


Code:
Private Function Fakultät(ByVal n)   
   If n <= 1 Then   
       Fakultät = 1  
   Else   
      Fakultät = n*Fakultät(n-1)  
   End if  
End function    
 
Debug.Print Fakultät(100)


Hoffe mal das ich das bald auch in c# schaffe :)
 
Nebenbei, als Ergänzung von Leevers Post: PHP kanns auch genauer:
PHP:
<?php
$n;
$m = 1;
   do {
     $n++;
     $m = bcmul($n, $m);
   } while($n<100);
echo $m;
?>
Das Ergebnis steht schon im 4 Post (von Thomas Darimont).


Der Doc!
 
Zurück