ahoj,
ako sa da vypocitat napriklad 1000! ??? viem, ze asi cez stringy sa to bude ukladat... nevie niekto presny algoritmus... pls co najrychlejsiee..
Fórum › C / C++
Faktorial
http://www.luschny.de/math/factorial/fffcalc.html
zdrojak je v kodu (js)
docela zajimava stranka... ale jestli maji byt ty algoritmy rychle tak nevim proc jsou v jave a c#...
co se tyce velikych cisel, algoritmus na jejich rychlejsi nasobeni najdes tu: http://ksp.mff.cuni.cz/tasks/19/cook2.html (toho quicksortu si nevsimej, je to az dole). reprezentovat si je muzes treba jako bitova pole (je to pak trochu min prehledne a narocnejsi na implementaci, ale usporis docela dost mista).
Vpodstatě by se to dalo řešit i rekurzí akorát by byl potřebnej dostatečně velkej datovej typ. Long Long Double je na to malej (na 1000!) ale na menší čísla proč ne...
long long double faktorial(long long double cislo)
{
if (cislo != 2)
cislo = faktorial(cislo - 1) * cislo;
return cislo;
}
To Matrix17 : ty ses ale mozek vid? nezlob se na me, ale tvuj prispevek ma naprosto NULOVOU hodnotu. osobe, ktera prispevek zakladala (a tedy ktere mi radime) je jasne ze se faktorial do zakladnich datovych typu nevejde, a to ze napises nejtrivialnejsi zpusob zapisu vypoctu faktorialu (a taky nejpomalejsi, co se tyce vetsich n, na coz se prave autor tematu pta), ktery se zde uz objevil. a to ze to prevedes na rekurzi to dokonce jeste zpomalis. doufam ze se neurazis, ale moje nervy nezvladnou vsechno.
Lisp rules 'em all ;)
(defun fact(x) (if(= x 1) 1 (* x (fact (- x 1)))))
Zvlada po 1363! (gcl).
Sorry za ot ;), chcel som len povedat ze preco to nerobis v jazyku ktory "sam od seba" zvlada huge cisla ?
Ale inak mi to tak zacalo vrtat hlavou ze uz mam funkciu (v C-cku) kora nasobi lubovolne dlhe retazce ale ten faktorial mi furt nefuguje.... no co uz, idem kodit...
Zdravím,
mohl by mi někdo poradit, jak udělat to, aby se po oznámení "Zadej kladne cislo" jiz program zastavil a vyzadal si dalsi zadani cisla? On totiz pokracuje a pocita faktorial ze zaporneho cisla. Zde je zdroják
long i, a, n;
printf("Zadej cislo pro zjisteni jeho faktorialu\n");
scanf("%ld",&a);
{if(a>=0);
else if(a<0) printf("Faktorial nelze vypocist\n");
n=1;
for (i=1; i<=a; i++)
{n=n*i;}
printf("Faktorial z cisla %ld je %ld\n",a,n);}
Děkuji za radu
problém je v uspořádání podmínek. Bohatě by stačila jedna a správně napsaná.
hu
nechápu o co vám de
http://justinwhite.com/big-calc/1000.html
https://social.msdn.microsoft.com/Forums/vstudio/en-US/d99d26fe-6b03-4a34-96c9-2e4428837810/how-to-calculate-the-factorial-of-1000-in-c?forum=vcgeneral
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Faktorial ve while — založil Noneus
Faktorial - IF funguje, WHILE ne — založil Petr Hájek
Faktoriál (výpis 1*2*3....) — založil Killbertos
Faktorial - IF funguje, WHILE ne — založil Petr Hájek
Moderátoři diskuze