Faktoriális számítás? C++
Egy honlap alapján haladok c++ tanulással és rekurzióval kellene megoldanom a faktoriális számítást, de nem igazán sikerült, ezért utána néztem mások megoldásainak és ebben:
int n,fakt=1;
for(n=0; n<=10 ; ++n) {
printf("%d! = %d\n",n,fakt);
fakt *=(n+1);
}
a printf utáni résszel nem találkoztam még, valaki el tudná magyarázni, vagy még valami egyszerűbb megoldást kellene találnom?
Kösz a linket. Sokat segít az első Google találat. Valószínűleg nem erre voltam kíváncsi. (Megkerestem és egy későbbi fejezetben lesz ilyesmi tárgyalva nem akarom összezavarni magam, azzal hogy felborítom a sorrendet) Amit előtte írtál, az alapján meg pontosan mit kellene adnia a programnak? Mert egyáltalán nem úgy működik ahogy szeretném és gondoltam ebben van a hiba mivel ezt nem értem, nem tudom ellenőrizni.
Az "egyszerűbb" megoldásra van lehetőség?
int fakt = 1;
for(int n = 1; n <= 11; ++n)
{
fakt *= n;
}
Mi nem megy ezen? Összeszorozza 1-11-ig a számokat, ez a 11! definíciója.
Viszont ez rossz megoldás a feladatkiírás alapján. Rekurzióval valahogy így nézhet ki:
unsigned long long fakt(unsigned char n){
if( n > 1){
return n * fakt(n - 1);
}
return 1;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!