Líbí se Vám má tvorba?   Přispět
 
  Má tvorba    
 
 
 
 
Programování
 
 
 
Články
 



Na webu je: 128 článků.
Uživatelé napsali: 1134 komentářů.

SczDavos WebSite

Poslední komentáře:
Mockrát děkuji.....
Musíš si umístit...
Jo dík moc a jes...
Řeší se to tu ka...
Nešlo by to uděl...
Děkuji za podpor...
Dákuji za aplika...
Na příští verzi ...
Jasně. Počítej ž...
Jo, někde to mám...

Výpočet faktoriálu

Faktoriál je funkce, která přiřadí každému kladnému celému číslu n takové číslo, které se rovná součinu všech čísel menších nebo rovných n.

Například tedy: 5! = 5 * 4 * 3 * 2 * 1 = 120

Faktoriál má jeden speciální případ, se kterým musíme počítat, a to: 0! = 1

Jedná se o velmi rychle rostoucí funkci, tudíž si dávejte pozor na výpočet faktoriálů vysokých čísel. (5! = 120, ale 10! je již v řádu milionů). Je tedy třeba rozmyslet si výběr datového typu podle hodnot, které bude funkce zpracovávat.

Funkce také musí být omezena jen pro kladná čísla včetně nuly, protože se záporným argumentem nemá smysl. Je velmi vhodné funkci faktoriál omezit na nějakou maximální hodnotu (zde 30), aby výpočet nezasekl program nebo nezavinil výjimku přetečení paměti.

 

Zdrojový kód [C#]:

public double Faktorial(int x) // výpočet faktoriálu 
        {
            if (x > 30 || x < 0)
            MessageBox.Show("Faktoriál je příliš paměťově náročný nebo ze záporného čísla.", "Chyba",
                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            int i;
            int j = 1;
            for (i = 1; i <= x; i++)
                j = j * i;
            return j;
        }

 

Faktoriál lze počítat také rekurzivně.

Faktorial rekurzivní metodou [Pascal]

function faktorial(n:integer):longint;        
   if N<2 then
       faktorial:=1
   else
   faktorial:=n*faktorial(n-1);
end;


Zpět na hlavní stránku




Vaše komentáře:
Zatím nikdo nevložil komentář - buď první!




Přidat novou zprávu:

Jméno:
E-mail:
Odpověď zaslat na můj email
Web:

Šťastný Smutný S vyplazeným jazykem Mrkající Smějící se Plačící Cool Nemocný Naštvaný S brýlemi Stydící se On to nebyl Překvapený Hodně překvapený Šokovaný Srdce soul_draco
Pro kontrolu prosím opište text z obrázku:

Odkazy v textu se automaticky zaktivní a všechny html tagy se pouze zobrazí.
Pokud zpráva obsahuje text "a href" nebo více než 2 odkazy, bude označena jako spam.