Problema con desbordamiento
Publicado por Raul (1 intervención) el 12/10/2004 19:12:41
Hola
He creado un pequeño programa que te calcula el factorial de un numero. El problema es que si pongo un numero mas grande de 20 me da un error. La finalidad de este programa no es otra que medir los tiempos de proceso de distintas maquinas para realizar mediciones. Por eso tambien me interesaria que me explicarais como puedo obtener el tiempo de ejecucion. Os dejo pegado el codigo. Muchas gracias.
Module Module1
Dim resultado As Long = 1
Sub Main()
Dim numero As Long
Console.WriteLine("CALCULO DEL FACTORIAL DE UN NÚMERO")
Console.WriteLine()
Console.Write("Introduce el numero: ")
numero = Console.ReadLine()
resultado = numero
Factorial(numero)
Console.WriteLine()
Console.Write("El Factorial de {0} es: {1}", numero, resultado)
Console.ReadLine()
End Sub
Sub Factorial(ByVal numero As Long)
If (numero = 1) Then
resultado = resultado * 1
Else
resultado = resultado * (numero - 1)
Factorial(numero - 1)
End If
End Sub
End Module
He creado un pequeño programa que te calcula el factorial de un numero. El problema es que si pongo un numero mas grande de 20 me da un error. La finalidad de este programa no es otra que medir los tiempos de proceso de distintas maquinas para realizar mediciones. Por eso tambien me interesaria que me explicarais como puedo obtener el tiempo de ejecucion. Os dejo pegado el codigo. Muchas gracias.
Module Module1
Dim resultado As Long = 1
Sub Main()
Dim numero As Long
Console.WriteLine("CALCULO DEL FACTORIAL DE UN NÚMERO")
Console.WriteLine()
Console.Write("Introduce el numero: ")
numero = Console.ReadLine()
resultado = numero
Factorial(numero)
Console.WriteLine()
Console.Write("El Factorial de {0} es: {1}", numero, resultado)
Console.ReadLine()
End Sub
Sub Factorial(ByVal numero As Long)
If (numero = 1) Then
resultado = resultado * 1
Else
resultado = resultado * (numero - 1)
Factorial(numero - 1)
End If
End Sub
End Module
Valora esta pregunta


0