allora io ho provato cosí:
codice:
FUNCTION fattoriale(n)
INTEGER i
INTEGER l,n
l=n
do i=1,n-1
l=l*i
enddo
fattoriale=l
RETURN
END FUNCTION
PROGRAM main
DOUBLE PRECISION h
INTEGER m
do m=1,15
h=fattoriale(m)
print *,h
enddo
END
ma come output ottengo questo:
1.00000000000000000
2.00000000000000000
6.00000000000000000
24.0000000000000000
120.000000000000000
720.000000000000000
5040.00000000000000
40320.0000000000000
362880.000000000000
3628800.00000000000
39916800.0000000000
479001600.000000000
1932053504.00000000
1278945280.00000000
2004310016.00000000
1932053504.00000000
i numeri fino a 12 vengono calcolati correttamente ma 13,14 e 15 hanno risultati che non coincidono con quelli che dovrebbero essere.....non so cosa pensare....forse é un probleme di approssimazione???