Programa para calcular el factorial de un numero entero positivo
Hola antes de empezar para quienes no estén familiarizados con la palabra factorial voy a comentarles rápidamente, que es, como y para que se utiliza.
el factorial de un numero se refiere a una operación matemática sobre un numero y se representa con el símbolo de exclamación <!>.
en matemáticas especialmente en combinaciones y análisis matemático su uso es muy frecuente, es una operación unaria y se define como el producto de todos los números enteros desde el 1 hasta n.
Ejemplo:
5! = 1 X 2 X 3 X 4 X 5 = 120
se denota como el factorial de 5, o podemos decir 5 factorial. un uso interesante es
utilizarlo para calcular el numero de formas distintas de ordenar "n" objetos diferentes.
ejemplo de las cajas
de cuantas formas podemos apilar tres cajas distintas una sobre otra.
solución
primero calculamos el factorial de 3
3!=1 X 2 X 3=6
existen 6 formas distintas de apilar 3 cajas.
comprobación:
podemos observar en la imagen siguiente todos los ordenamientos posibles.
caja 1=1; caja 2= 2; caja 3= 3;- forma 1: 123;
- forma 2: 132;
- forma 3: 321;
- forma 4: 312;
- forma 5: 213;
- forma 6: 231;
podemos buscar otra forma y nos daremos cuenta que no existen mas.
Factorial n |
ahora que tenemos una idea un poco mas intuitiva acerca del termino factorial vamos a mostrar como programar en c++ para que lo calcule y muestre una lista desde el factorial de 0 hasta el de n.
análisis
salida: lista del factorial de 0 hasta n
entrada: valor de n
procedimiento:
inicio
- declarar variable n tipo int y variable factorial_N tipo long double;
- solicitamos el valor de n
- validamos que el valor de n no sea negativo
- calculamos y visualizamos el factorial desde 0 hasta n
fin
este programa es muy sencillo solamente 4 pasos y estará listo.
codificación
Programa del factorial n de cymasmas |
Breve explicación
siguiendo los pasos que mencione en la parte del procedimiento
linea 6-7 declaramos variables
linea 11-12 solicitamos el valor de n
linea 10-15 validamos que el valor de n no se negativo con un ciclo do-while
linea 17-21 se calcula el factorial
aquí se utilizan la biblioteca iomanip para manipular el formato de salida, como se observa en la linea 20.
setprecision: manipula el numero de ceros después del punto.
ejemplo:
el valor 3.1415874569
si utilizamos setprecision(2)
se mostraría el valor 3.14
setiosflags(ios::fixed) : muestra todos los números decimales, si este es omitido entonces nos mostraría los datos en notación científica.
otro punto clave es la utilización de la variable factorial_N la cual se declaro del tipo long double, esto es porque el tamaño del factorial es muy grande y no cabe en una variable tipo int.
por ejemplo si declaran la variable factorial_N como tipo int después del 10! todos los cálculos siguientes estarían incorrectos ya que el valor es demasiado grande y no puede ser contenido en dicha variable.
para buscar mas información investiga el tema tipos de datos y sus rangos en c++.
sigue este enlace para una pagina que encontré en zator sobre el tema.
Factorial n en c++ desde la terminal |
NOTA: el programa esta probado hasta el factorial de 150.
Practica: intenta que el programa solamente de el factorial de n y no toda la tabla, solamente es necesario un pequeño ajuste;
Si les interesa conocer mas manipuladores de salida pueden leer este enlace. (español)
para ver el tema anterior de estructuras de control pulsa aquí.
Que te parecio el tema, tus dudas y comentarios ayudan a mejorar la pagina.
Gracias.
Comentarios
Publicar un comentario