edmondantes ha scritto:
funziona fino a che non gli chiedo di calcolare il fattoriale di un numero > 34. a quel punto mi dice "INFINITY". come mai?come posso risolvere?
dipende dal fatto che il numero calcolato supera la capacità della variabile.
potresti provare con una long double.
comunque ti consiglio di usare il tipo double al posto del tipo float
perché il double gestisce meglio la parte intera.
comunque hai commesso una piccola dimenticanza e sarebbe questa:
quanto fa il fattoriale di 0?
la risposta è 1 per definizione.
quindi ti consiglio di aggiungere le seguenti righe:
if (N==0) { p=1; cout << p; return 0;}