• Blog
  • Acerca
  • Autor
  • Contacto
  • Factorial de forma sencilla en C++

    Ya vimos como calcular el factorial de un número c++ en forma recursiva, sin embargo hay una forma mucho mas fácil de entender y de aplicar (pero menos eficiente). Vamos viendo:

    Si el factorial de un número es la multiplicación de cada número desde 1 hasta ese número (por ejemplo factorial de 4 = 1*2*3*4 = 24), entonces es muy sencillo crear un ciclo de 1 hasta el número pedido en c++ para hacer el cálculo.

    #include<iostream>
    using namespace std;
     
    int main()
    {
        int num,fact=1;
        cout << "::FACTORIAL::" << endl;
        cout << "Introduce un numero: "; cin >> num;
        for(int i=2; i<=num; i++)
        {
            fact = fact * i;
        }
        cout << "Su factorial es: " << fact;
        cin.get();cin.get();
        return 0;
    }

    ¿Entonces porqué el ciclo empieza en 2? Si comenzara en 1, el proceso para el numero 3 (por poner un ejemplo) sería así:

    • fact = fact * i -> fact = 1 * 1 -> fact = 1
    • fact = fact * i -> fact = 1 * 2 -> fact = 2
    • fact = fact * i -> fact = 2 * 3 -> fact = 6

    Como ven, el primer paso es totalmente innecesario.

    1. rodrigo dice:

      te pasaste esta increible tu pagina, muchas gracias por responder.

    2. rodrigo dice:

      dalo por hecho!

    3. carlos roberto dice:

      karnal una pregunta que pasa si el factorial de un numero es de forma repetitiva y por ejemplo que el programa tenga la opcion de escojer si es de forma repetitiva o forma recursiva?
      :o ayudaaa porfaa xD

      lo de recursivo ya lo entendi pero de casualidad sabes en repetitivo :D

      gracias de antemano.

    4. David dice:

      Disculpa si kiero hacer una validacion, es decir que al momento de ingresar un caracter sea una letra el programa lo detecte y mande un mensaje de incorrecto o invalido.
      cual seria el proceso¿¿

    5. haner d. dice:

      si se ingresa un decimal o una fraccion entonces com se hace la condicion ?

    6. Dudoso dice:

      Hola gracias por el aporte.

      Tengo una gran duda.

      Primero inicializas a 2;luego i<= numero ( es decir es el limite hasta donde avanza i); i++( esto es el incremento de 1 es decir incrementa de 1 en uno en este caso hasta el limite que es el numero) mi duda es,

      donde pones fac=fac*i;

      Quiero entender o de mi parte entiendo que hace esto Multiplica fac por el incremento es decir i practicamente tiene un valor de 1,luego de 2 , luego de 3, etc,

    7. xxxxxxxxxxxxxxx dice:

      porque si pido el factorial de 100 me da 0………………

    8. Gran Jason dice:

      hola shevre, el programa bien comprensible y simple, sin tener que hacerla larga. buena brother

    9. jorch dice:

      porque se le pone i++ ???? no entiendo eso … ayuda porfas quien sea… gracias

    10. Jota dice:

      Es para que aumente una unidad en el contador

    Hola, escribe aquí tu comentario: