Ir al contenido principal

Factorial de un numero en c++

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.

combinación de cajas
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.

Programa que calcula el factorial n
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

Entradas más populares de este blog

piedra, papel y tijeras en c++

Hola hoy les mostrare como hacer un programa que simule en c++ el juego de piedra, papel y tijera. en el cual se utilizan la mayoría de los elementos básicos que se usan en c++ para programar. para nuestro programa se seguirán las reglas tradicionales con tres opciones y haremos que nuestro programa se repita hasta que nosotros decidamos terminar de jugar. Al finalizar les diremos el total de victorias y empates, este juego es de dos personas así que haremos que nuestro ordenador sea el contrincante. ¿piedra, papel y tijeras? es un juego de manos que se juega entre dos personas. aquí esta un enlace con las reglas. como les he comentado anteriormente es necesario hacer un pequeño análisis antes de programar. Análisis salida: mensaje que indica al ganador, el total de victorias y empates. entrada: una opción de juego(piedra,papel,tijera) procedimiento:   declarar variables enteras jugador, maquina, victorias_jugador, victoria_maquina, empates i

programa c++ mayor de dos numeros

hola en esta entrada les mostrare como hacer un programa que calcule el mayor de dos números utilizando la estructura de control if. ejercicio.- programa que calcula el mayor de dos números reales. análisis salida:mensaje que indique que el mayor de dos números entrada:dos números reales procedimiento: declarar 2 variables reales(float o double) escribir "ingrese numero 1: " leer numero1 escribir "ingrese numero2: " leer numero2 comparar numero1 y numero2 imprimir el mayor es: numero mayor ya que hicimos el procedimiento hay que codificarlo breve explicación linea 1-2 incluimos bibliotecas linea 6 declaramos variables tipo double linea 9-12 solicitamos al usuario que ingrese los numeros y los almacenamos en las variables linea 14-15  comparamos si el numero 1 es mayor que el numero 2 y si se cumple la condicion imprimimos que el mayor es el numero 1. linea 16-17 comparamo

área de un triangulo c++

ejercicio 1.- calcule el área de un triangulo Hola, si llegaste a esta publicación de seguro te debes preguntar ¿como hacer el programa del área del triangulo? o del rectángulo y cualquier otra figura, entonces estas en el lugar correcto. este es un algoritmo sencillo que utiliza la formula de matemáticas para hallar el área. antes de empezar a programar tenemos que hacer un pequeño análisis: comprender el problema plantear los pasos para resolver el problema codificar compilar ejecuar comprender el problema nuestro problema es calcular el área de un triangulo . planteamos los pasos ahora hay que preguntarse: ¿que necesito para hacer el calculo? el área de un triangulo es igual a la base por altura entre dos, entonces debemos conocer la base y la altura. ¿como obtener esos datos? hay que decirle al usuario que ingrese esos datos. ya que tenemos los datos podemos calcular el área y solo nos falta escribir en la pantalla el resultado. codifica