Citace Původně odeslal Anduril Zobrazit příspěvek
Imo kdyz by ta fce vypadala takto

Kód:
float faktorial1(float f)
{
 int i;
 for (i = f-1; i >= 2; i--)
     f *= i;
 return f;
}
tak to musi davat korektni vysledek...

Ano tohle chodi a umi to spocitat maximalne 34! ... ja predtim zkousel float jen te funkce faktorial1, f sem nechal int...nechapu proc by melo f byt neco jineho nez int, prece faktorial muzu pocitat jen z celych cisel

Jinak kdyz se pouzije double umi to az 170!

muze mi ale nekdo vysvetlit proc u te druhe rekurzivni fce muze byt f integer a funguje to stejne jako double u te funkce pres cyklus for ?



double faktorial1(double f)
{
int i;
for (i = f-1; i >= 2; i--)
f *= i;
return f;
}

double faktorial2(int f)
{
if (f <= 1) return 1;
return f * faktorial2(f - 1);
}




PS: Muze mi nekdo napsat presne omezeni jednotlivych typu:

short int
int
long int
float
double
long double


Dik vsem za pomoc!