SoloCodigo

Programación General => Otros Lenguajes de Programación => Fortran => Mensaje iniciado por: pablosavi14 en Lunes 6 de Julio de 2009, 14:26

Título: Problema factorial
Publicado por: pablosavi14 en Lunes 6 de Julio de 2009, 14:26
Hola,
Tengo una función para calcular el factorial de un numero dentro de una programa. Todo va bien hasta que llega al fatorial de 13, donde me da un resultado erroneo, y partir de hay empieza a darme valores negativos o erroneos. La funcion es la siguiente:

**************************************************************************
C Computes factorial of an integer
C**************************************************************************
C INPUTS:
C n: integer
C OUTPUTS:
C nfact: integer
C**************************************************************************
function factorial(n) result(nfact)
implicit none
integer, intent(in) :: n
integer (SELECTED_INT_KIND (5)) nfact
C integer :: nfact
integer :: h
nfact = 1
print*,'n',n
if (n > 1) then
do h = 2, n
print*,'h',h
nfact = nfact * h
print*,'nfact',nfact
end do
else
nfact=1
endif
print*,'nfact',nfact
end function

Si alguien ve donde puede estar el error lo agradeceria mucho.
Título: Re: Problema factorial
Publicado por: facured12 en Sábado 25 de Julio de 2009, 16:51
Hola, te paso el que hice yo. Es bastante simple pero creo que funciona bien, salud(2)!

PROGRAM FACTORIAL
       
WRITE(*,*)'N: '
READ(*,*)N
L=1
DO INDEX=1,N
L=L*INDEX
ENDDO
WRITE(*,*)L
END