Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

161
Vistas
factorial de un entero

Tengo una duda sobre un ejercicio (en JavaScript) sobre el factorial de un entero. Tengo dos condiciones que no puedo resolver: El factorial de un número negativo no existe. ¿Cómo puedo mostrar esto? Ingrese números decimales usando el punto decimal: 1.54. Creo que los decimales también pueden ser factoriales. ¿Pero cómo?

 function fact(){ var i; var number; var f; f = 1; number = document.getElementById("number").value; for(i = 1; i <= number; i++) { f = f * i; } i = i - 1; document.getElementById("result").innerHTML = "The factorial of the number " + i + " is: " + f ; }
 Enter a number: <input id = "number"> <button onclick = "fact()"> Factorial </button> <p id = "result"></p>

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El factorial de un número negativo no existe. ¿Cómo puedo mostrar esto?

Una declaración if simple debería permitirle verificar el valor de number . Si ese valor está por debajo de cero (lo que significa que es un número negativo), muestra un mensaje diferente en la página:

 if (number < 0) { document.getElementById("result").innerHTML = "Invalid input. A positive number is required"; }

Ingrese números decimales usando el punto decimal: 1.54 . Creo que los decimales también pueden ser factoriales. ¿Pero cómo?

Wikipedia define factorial de la siguiente manera:

En matemáticas, el factorial de un entero no negativo n, denotado por n!, es el producto de todos los enteros positivos menores o iguales que n.

Lo que significa que un valor de 1.54 no es válido, ya que no es un número entero.

Qué hacer al respecto depende de usted. Algunas ideas:

  • Podrías redondear el número primero con Math.round(number)
  • Puede redondear el número a la baja con Math.floor(number)
  • Podría presentar otro mensaje de error cuando detecte que el número no es un número entero con algo como if (Math.floor(number) === number)

O como señala @ 0stone0 en un comentario a esta respuesta, los factoriales fraccionarios pueden ser una cosa. No estoy seguro de cómo convertir esa matemática a javascript. Pero el punto es que depende de usted cómo quiere manejar estos casos extremos.


Por último, vale la pena hablar de esta línea:

 number = document.getElementById("number").value;

Aquí number es una cadena, en realidad no es un número. Esto significa que son los caracteres "123" en lugar del número 123 . Probablemente quiera usar parseInt o parseFloat en ese valor para convertirlo en un número real.

Javascript a veces convierte esa cadena en un número para usted cuando realiza operaciones matemáticas, pero no es una buena práctica confiar en eso, ya que puede causar algunos errores extraños y sutiles que son difíciles de entender.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda