Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

162
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda