Autor Zpráva
marat
Profil
Hoj všem ,
učim se PHP a chtěl jsem si udělat abych se to lépe naučil takovej výpočet faktoriálu.
Tak jsem vše udělal , jenže je tu menší problém ... zobrazujou se mi , jak jsem předpokládal mezi výpočty faktoriálu.
Potřeboval bych nějakou smyčku (cyklus) kterej by byl jako if, else ...
Vypisoval bych třeba mezeru to by byly ty mezivýpočty a až by to nebyla pravda, vypsal bych tu konečnou hodnotu faktoriálu...
Bohužel žádnej takovej cyklus neexistuje ,... nebo jop ??
Snad jste pochopili co chci , přikládám web , kde je příklad a kód na ten výpočet.

<?

$cislo_nasobeni = $zadane_cislo ;
$cislo_nasobeni-- ;
for($cislo_nasobeni ; $cislo_nasobeni > 0 ; $cislo_nasobeni-- )
{
$zadane_cislo = $zadane_cislo * $cislo_nasobeni ;

echo $zadane_cislo ;
echo "<br>" ;
}

?>


www.marat.ic.cz/php/faktorial.html
jozob
Profil
Dúfam, že som správne pochopil zadaniu.

Môžeme použiť krásne riešenie rekurziou. Konkrétne chvostovou rekurziou.
<?php

function faktorial($cislo=0)
{
if(!$cislo)
{
$return=1;
}
else
{
$return = $cislo * faktorial($cislo-1);
echo $return."<br>";
}
return $return;
}
faktorial($zadane_cislo);
?>


Ale jednoducho sa to dá prepísať aj do obyčajného for cyklu:
<?php

function faktorial2($cislo=0)
{
if(!$cislo)
{
$return=1;
}
else
{
$return=1;
for($i=1; $i<=$cislo; $i++)
{
$return*=$i;
echo $return."<br>";
}
}
return $return;
}
faktorial2($zadane_cislo);
?>
marat
Profil
Jj pochopil , moc díky :))
marat
Profil
Ještě něco , co to znamená to ,když je před proměnnou ten vykřičník ??
marat
Profil
joo negace... false.. ne ?
jozob
Profil
marat
"Ještě něco , co to znamená to ,když je před proměnnou ten vykřičník ??"
Vykričník je negácia. Čiže z pravdy vytvorí nepravdu a z nepravdy pravdu.
marat
Profil
Aha teďka jsem to vyzkoušel a opravdu jste mě nepochopil :P Já jsem právě chtěl , aby se mezivýpočty nezobrazovali ... Jinak mě to taky funguje , ten výpočet faktoriálu , ale chci aby se zobrazil až ten faktoriál a ne výpočet.... a na konci faktoriál...
jozob
Profil
marat
Aha ták... Potom stačí mala úprava:
Rekurzívne riešenie:
<?php

function faktorial($cislo=0)
{
if(!$cislo)
{
$return = 1;
}
else
{
$return = $cislo * faktorial($cislo-1);
}
return $return;
}
echo faktorial($zadane_cislo);
?>


Riešenie pomocou cyklu:
<?php


function faktorial2($cislo=0)

{
if(!$cislo)
{
$return = 1;
}
else
{
$return = 1;
for($i=1; $i<=$cislo; $i++)
{
$return*=$i;
}
}
return $return;
}
echo faktorial2($zadane_cislo);
?>
marat
Profil
Jop funguje díky , snad to pochopim :D
Toto téma je uzamčeno. Odpověď nelze zaslat.

0