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.
te pasaste esta increible tu pagina, muchas gracias por responder.
De nada Rodrigo, espero que nos recomiendes con tus amigos :D
dalo por hecho!
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.
Pues la forma repetitiva (por ciclos) es la de este post, si entendiste la forma recursiva esto debe ser como una dona al lado de un café.
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¿¿
si se ingresa un decimal o una fraccion entonces com se hace la condicion ?
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,
porque si pido el factorial de 100 me da 0………………
hola shevre, el programa bien comprensible y simple, sin tener que hacerla larga. buena brother
porque se le pone i++ ???? no entiendo eso … ayuda porfas quien sea… gracias
Es para que aumente una unidad en el contador