Java básico 028. Factorial de un número.

Ejercicio: Pedir un número y calcular su factorial.
Código Java
import java.util.Scanner;

/**
*
* @author Ariel
*/

public class FactorialNumero {

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
//Ej.: El factorial de 5 es: 5*4*3*2*1
long factorial=1;
int num;
Scanner numero = new Scanner(System.in);
System.out.print("Introduce un número: ");
num = numero.nextInt();
for (int i = num; i > 0; i--) {
factorial = factorial * i;
}
System.out.println("El factorial de " + num + " es: " + factorial);
}
}

26 comentarios :

  1. Hola... tengo un ligero problema amigo... cuando ejecuto el programa y ingreso el numero 17 me sale el numero -288522240... y no entiendo por que el signo es negativo...

    ResponderEliminar
    Respuestas
    1. Que tal amigo, a mi me sale: El factorial de 17 es: 355687428096000. Tendrias que ver si en algún punto esta mal tu código. Saludos.

      Eliminar
    2. es porque tienes que usar big,ya que long,solo tiene una cierta capacidad de almacenamiento y si sobrepasas eso,no funciona adecuandamente el programa ,es decir en el caso de byte solo se puede calcular e introducir numeros de -128 a 127,long creo que es de hasta 2 mil millones,creo no lo recuerdo.

      Eliminar
  2. Hola amigo me puedes decir el codigo en php por favor.

    ResponderEliminar
  3. Hola amigo me puedes decir el codigo en php por favor.

    ResponderEliminar
    Respuestas
    1. Que tal. Solo trabajo con Java amigo, no tengo nada de PHP.

      Eliminar
    2. una pregunta como hago para que solo me deje usar hasta el numero 10 y no saque el factorial de los demas numeros solo del 1 al 10

      Eliminar
    3. una pregunta como hago para que solo me deje usar hasta el numero 10 y no saque el factorial de los demas numeros solo del 1 al 10

      Eliminar
    4. Que tal. Podrias usar una condicional num <= 10. Que seria número menor o igual a 10. Saludos.

      Eliminar
    5. exacto, has lo que carlos chavez a mencionado. prueba con una condicion
      if(a<=10)
      {
      instrucciones
      }

      Eliminar
  4. Disculpa amigo, mi cuestion es por que colocas i-- en tu codigo? pense que deberia ser i++ para que pueda aumentar de 1 en 1

    ResponderEliminar
    Respuestas
    1. Que tal. Es por "int i = num", empieza con el valor del numero por tanto debe ir dismunuyendo hasta llegar a cero. Es otra forma de manejar un for.

      Eliminar
  5. no hay ejercios de bidimencionales

    ResponderEliminar
  6. //44. Leer un número y calcularle su factorial.
    import java.util.Scanner;
    public class Main {
    public static void main(String[] ar) {
    Scanner teclado=new Scanner(System.in);
    System.out.println("Dame un numero ");
    int num1,num2,num3=1;
    num1=teclado.nextInt();
    for (int i = num1; i > 0; i--){
    num3=num3*i;
    System.out.println("El factorial del " + num1 + " es: " + num3);
    }
    }
    }

    ResponderEliminar
    Respuestas
    1. Mi Código me quedo justo asi pero no entiendo pq no me devuelve el mensaje del factorial me pide el número y luego no me imprime el resultado

      Eliminar
  7. Disculpa... No entiendo muy bien cuando modificó el "for" para un factorial:for(int i = número; i>0; i--)...porque es: for (valores de entrada; condición de terminación; iteracion por ciclo), Saludos me ayudó mucho.

    ResponderEliminar
  8. Nos as salvado estamos agradecidos jpg.

    ResponderEliminar
  9. en ese mismo codigo como puedo implementar un metodo?


    ResponderEliminar
    Respuestas
    1. Que tal. Se puede encapsular en un método por ejemplo: static void factorial(int n){}. Todo el código ajustado dentro de la llave.

      Eliminar
  10. Hola amigos!

    Me podrian ayudar a hacer un codigo con scanner donde calcule el factorial del 1! al 10! usando for
    y que me aparezca el resultado asi:

    1!= 1
    2!= 2
    3!= 3
    4!= 6
    5!= 24
    6!= 720
    7!= 5040
    8!= 40320
    9!= 362880
    10!= 3628800

    Por favor...

    ResponderEliminar
    Respuestas
    1. Que tal. La entrada "java-basico-065" del blog puede serte de utilidad. Saludos.

      Eliminar
    2. public void setFactor(){
      int fact=1;//no va cero porque toda multiplicacion multiplicada por cero da cero

      for(int i=1; i<=10; i++){

      for(int m=1; m>=1; m--){
      fact =fact*m*i;
      System.out.println(i+"!="+fact);
      }...

      Eliminar
  11. Hola,

    Una consulta, como se podría hacer para que la salida sea algo similar a esto, por ejemplo si se calcula el factorial de 5

    El factorial de 5 es: 5*4*3*2*1

    ResponderEliminar
    Respuestas
    1. Puedes probar cambiando la impresión:
      String factorial = "";
      int num;
      Scanner numero = new Scanner(System.in);
      System.out.print("Introduce un número: ");
      num = numero.nextInt();
      for (int i = num; i > 0; i--) {
      if(i == 1){
      factorial += i + "";
      break;
      }
      factorial += i + " * ";
      }
      System.out.println("El factorial de " + num + " es: " + factorial);

      Eliminar