Autor Zpráva
orava
Profil
Neviete na akej stranke si mozem otestovat faktorial a aka je na to funkcia?
vertigo4
Profil
orava
 <?php
    function faktorial($cislo) {
        if ($cislo == 0) return 1;
        return $cislo * faktorial($cislo - 1);
    }
?> 
peta
Profil
vertigo4
cislo<0 ?
Timy
Profil
Faktoriál máš na každé kalkulačce.

peta
...tak ti to pokaždé vyhodí nulu.
nightfish
Profil
Timy
.tak ti to pokaždé vyhodí nulu.
faktorial(-2) se imho zacyklí... -2*faktorial(-2 - 1) * faktorial(-3-1)...

používat na faktoriál rekurzi je sice efektní, ale to je tak asi všechno
function faktorial($cislo) {
  $vysledek = 1;
  for ($i = 2; $i <= $cislo; $i++) $vysledek *= $i;
  return $vysledek;
}
Joker
Profil
nightfish
faktorial(-2) se imho zacyklí
Nojo, "efektní" řešení by vypadalo nějak takhle:

function faktorial($cislo) return(($cislo <= 1) ? 1 : $cislo*faktorial($cislo-1));

Cha :)
(poznámka: jednička místo nuly v podmínce ušetří jednu zbytečnou rekurzi)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0