Faktoriál je funkce, jejímž argumentem je přirozené číslo n a výstupem je součin všech čísel menších nebo rovných (v případě je výsledkem 1). Faktoriál čísla se značí .
Příklady
Kód
/** * Vypocita faktorial cisla * @param number cislo >= 0 * @return faktorial cisla */ public static int factorial(int number) { if (number < 0) throw new IllegalArgumentException("zaporny argument"); int result = 1; for (int i = number; i > 1; i--) { result *= i; } return result; } /** * Vypocita rekurzivne faktorial cisla * @param number cislo >=0 * @return faktorial cisla */ public static int factorialRec(int number) { if (number < 0) throw new IllegalArgumentException("zaporny argument"); if (number == 0 || number == 1) return 1; return number * factorialRec(number - 1); }
/** * Vypocita faktorial vstupniho cisla * @param number Vstupni cislo * @return Faktorial vstupniho cisla * @author Thomas (www.adamjak.net) */ int fakt(int number) { if (number < 0) { return 0; } int i, result = 1; for (i = number; i > 1; i--) { result *= i; } return result; } /** * Vypocita faktorial vstupniho cisla rekurzivni formou algoritmu * @param $number Vstupni cislo * @return Faktorial vstupniho cisla * @author Thomas (www.adamjak.net) */ int fakt_rek(int number) { if (number < 0) { return 0; } if (number == 0 || number == 1) { return 1; } return number * fakt_rek(number - 1); }
/** Autor: Vaclav Kejr */ public long Faktorial(int n) { try { long faktor = 1; if (n < 1) { throw new ArgumentException("Argument n < 1 !", n.ToString()); } else if (n == 1) { return faktor = 1; } else if (n >= 2 && n <= 20) { for (int i = 2; i <= n; i++) { faktor *= i; } return faktor; } else { throw new ArgumentException("Argument n > 20 !", n.ToString()); } } catch (SystemException ex) { Console.WriteLine(ex.ToString()); return -1; } }
/** * Vypocita faktorial vstupniho cisla * @param $number Vstupni cislo * @return Faktorial vstupniho cisla * @author Thomas (www.adamjak.net) */ function faktorial($number) { if ($number < 0) { die("zaporny argument"); } $result = 1; for ($i = $number; $i > 1; $i--) { $result *= $i; } return $result; } /** * Vypocita faktorial vstupniho cisla rekurzivni formou algoritmu * @param $number Vstupni cislo * @return Faktorial vstupniho cisla * @author Thomas (www.adamjak.net) */ function faktorial_rek($number) { if ($number < 0) { die("zaporny argument"); } if ($number == 0 || $number == 1) { return 1; } return $number * faktorial_rek($number - 1); }
fact(0,1). fact(N,R) :- N >= 0, integer(N), N1 is N - 1, fact(N1,R1), R is N * R1.
(defun fact (x) "generates factorial of x" (if (= x 0) 1 (* x (fact (- x 1))))) (defun fact2 (x) "generates factorial of x" (if (zerop x) 1 (* x (fact2 (1- x))))) (defun fact3 (x) "generates factorial of x" (cond ((zerop x) 1) (T (* x (fact3 (1- x))))))