SlideShare una empresa de Scribd logo
FACTORIAL
EN C++
PÁGINA 02
En este tutorial aprenderemos a hacer una función de factorial en c++
mediante la estructura de control for y también aplicando
recursividad. Además veremos cuáles son las ventajas de usar
recursividad sobre algunas estructuras de control iterativas.
Primero veamos en qué consiste la función factorial. El factorial de un
número es la multiplicación de los números que están comprendidos
entre 1 hasta dicho número. Para expresar el factorial se suele utilizar
la notación n!. Así la definición es la siguiente:
n! = 1 x 2 x 3 x 4 x 5 x ... x (n-1) x n
Estructura de control for
Un bucle for hace que una instrucción o bloque de instrucciones se
repita un número determinado de veces mientras se cumpla la
condición.
for(inicializacion; condicion; incremento/decremento) {
instrucción 1;
...........
instrucción N;
}
zona de inicialización
zona de condición
zona de incremento ó decremento.
Se inicializa la variable o variables de control.
Se evalúa la condición.
Si la condición es cierta se ejecutan las instrucciones. Si es falsa,
finaliza la ejecución del bucle y continúa el programa en la
siguiente instrucción después del for
Se actualiza la variable o variables de control
(incremento/decremento)
Se pasa al punto 2.
A continuación de la palabra for y entre paréntesis deben haber
siempre tres zonas separadas por punto y coma:
En alguna ocasión puede no ser necesario escribir alguna de ellas. En
ese caso se dejarían en blanco, pero los punto y coma deberían
aparecer.
El funcionamiento de un bucle for es el siguiente:
1.
2.
3.
4.
5.
Ahora veremos el ejemplo del factorial implementado en c++:
PÁGINA 03
PÁGINA 04
#include
using namespace std;
int main(void){
int i;
int fact=1;
int numero;
cout<<"ingresa un numero: ";
cin>>numero;
if(numero<0) fact =0;
else if(numero==0) fact=1;
else{
for (i = 1; i <= numero; i++){
fac = fact*i;
}
}
cout<<"Factorial de "<
system("pause");
}
Como podemos observar en el ejemplo, primero inicializamos nuestras
variables i, fact y numero.
Después de ingresar el número por consola procedemos a evaluarlo. Si
este es menor a cero, entonces el factorial también será 0, si es cero
nuestro factorial será 1, caso contrario procedemos a calcular el
factorial con el for.
PÁGINA 05
En nuestro for inicializamos nuestra variable iterativa i en 1, esta se
incrementará en 1 por cada iteración hasta que sea igual a número,
dentro de las instrucciones por cada iteración se efectúa una
multiplicación de todos los valores que va tomando i, en nuestro caso
de 1 hasta el número y los va almacenando en la variable fact.
Una vez terminado el programa, mostramos en pantalla nuestro
resultado.
Recursividad
En palabras simples, la recursividad es cuando una función tiene la
característica de poder llamarse a sí misma dentro de sus
instrucciones; gracias a esto, podemos utilizar a nuestro favor la
recursividad en lugar de la iteración para resolver determinados tipos
de problemas.
A continuación veremos el ejemplo de la función factorial usando
recursividad:
#include
using namespace std;
int factorial(int n) {
if(n < 0) return 0;
else if(n > 1) return n*factorial(n-1);
return 1;
}
int main(void) {
int numero;
cout<<"ingresa un numero: ";
cin>>numero;
cout<<"Factorial de "<;
}
PÁGINA 06
Como podemos observar en nuestro ejemplo nuestra función factorial
recibe un valor n, evaluamos dicha variable, si esta es menor que cero
la función nos retorna el valor 0, si n es mayor que uno llamamos otra
vez a nuestra función factorial pero con n-1 y a esto lo multiplicamos
por n, esto se repetirá hasta que n llegue a tomar el valor de 1.
La mejor forma de entenderlo podría ser:
5!
n=5 -> factorial(5) -> 5*factorial(4) -> 5*4*factorial(3) ->
5*4*3*factorial(2) ->5*4*3*2*factorial(1) -> 5*4*3*2*1 -> 120
Principio importante: Toda solución recursiva puede encontrar una
solución iterativa equivalente, mientras que lo contrario no siempre es
cierto. Por cuestiones de uso de memoria y rapidez se recomienda
recursividad en lugar de interacciones.
La diferencia que podemos encontrar en la función recursiva y la
iterativa es que la recursiva tienes que hacer constantes llamadas en
las funciones que tienes en tu algoritmo o programa, mientras que en
la iterativa no son necesarias tantas llamadas para la solución del
problema.
Para saber mas del tema ver el siguiente video:
https://www.youtube.com/watch?
v=yNWuEDd8iQs

Más contenido relacionado

PPT
ESTATUTO WHILE
PPTX
PPT
Funcionesenlenguaje c
DOC
Integral de riemann
PDF
Presentación 13 Paso por referencia
PDF
Presentación 09 Cajas blanca
ESTATUTO WHILE
Funcionesenlenguaje c
Integral de riemann
Presentación 13 Paso por referencia
Presentación 09 Cajas blanca

La actualidad más candente (20)

DOCX
Guia 2nd o & 3er
PPT
Palindromos
PDF
Programación 1: funciones en C
PDF
6.funciones y recursividad en c++
PPTX
10 programas de if
PPTX
RECURSIVIDAD C++
PPTX
Sentencia Condicional
PPTX
Pruebas de escritorio
PDF
Ejercicios Utilizando C++
PDF
Ejercicio 2 mates
DOC
Ejemplos Para Dev C++
PPTX
Metodosbiseccionyfalsaposicion
PPTX
10 programa s de if then else
DOCX
Recursividad Con C#
PDF
Funciones trascendentales derivadas e integrales
PDF
Programación 1: cadenas en C
PDF
Ejemplo C++
PDF
Ejercicios de programacion en c++
Guia 2nd o & 3er
Palindromos
Programación 1: funciones en C
6.funciones y recursividad en c++
10 programas de if
RECURSIVIDAD C++
Sentencia Condicional
Pruebas de escritorio
Ejercicios Utilizando C++
Ejercicio 2 mates
Ejemplos Para Dev C++
Metodosbiseccionyfalsaposicion
10 programa s de if then else
Recursividad Con C#
Funciones trascendentales derivadas e integrales
Programación 1: cadenas en C
Ejemplo C++
Ejercicios de programacion en c++
Publicidad

Similar a Factorial en C++ (20)

PDF
Capítulo 6 funciones y procedimiento
PDF
Funciones recursivas
PPT
DOCX
Informe Técnico - Recursividad Unidad 2 (Rubi Veronica)
PDF
PDF
Guiaunidad iii
PPTX
Estructura repetitiva for y while
PPTX
Sentencia de control
PDF
Arreglo unidimensionales y bidimensionales
PDF
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
PPT
Sentencias de Repeticion
PPT
11funciones 1231096290787715-2
PPTX
Clase 10
PPTX
recursividad EN PROGRAMACION ORIENTADA .pptx
PPTX
recursividad.pptx
PPT
Funciones en C
PPT
FUNCIONES LENGUAJE C
PPTX
Programación de nivel básico 3. c2. p2.
Capítulo 6 funciones y procedimiento
Funciones recursivas
Informe Técnico - Recursividad Unidad 2 (Rubi Veronica)
Guiaunidad iii
Estructura repetitiva for y while
Sentencia de control
Arreglo unidimensionales y bidimensionales
adalsus Prep-Course - soyHenry mis apuntes JS.pdf
Sentencias de Repeticion
11funciones 1231096290787715-2
Clase 10
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad.pptx
Funciones en C
FUNCIONES LENGUAJE C
Programación de nivel básico 3. c2. p2.
Publicidad

Más de KareliaRivas (20)

PDF
Lenguaje de programación Python
PDF
Diseño e instalación de sitios web (PHP hypertext preprocessor)
PDF
Estrategia de aprendizaje 17 (Herencia)
PDF
Programación orientada a objetos (Herencia)
PDF
Estrategia de aprendizaje 16 (Introducción a html)
PDF
Introducción a HTML
PDF
Programación orientada a objetos (Crear objetos)
PDF
PDF
PDF
Programación orientada a objetos (Creación de clases)
PDF
Los tipos de lenguaje de programación
PDF
Diseño e instalación de sitios web (Apache HTTP server)
PDF
Introducción a la programación orientada a objetos en c (POO)
PDF
Lenguajes de programación
PDF
Diseño e instalación de sitios web (Definición de un servidor web)
PDF
Interfaces para sistemas de gestión de bases de datos
PDF
Recursividad en programación
PDF
Diseño e instalación de sitios web (El reto del espacio en pantalla / plantil...
PDF
Tipos de bases de datos distribuidas
Lenguaje de programación Python
Diseño e instalación de sitios web (PHP hypertext preprocessor)
Estrategia de aprendizaje 17 (Herencia)
Programación orientada a objetos (Herencia)
Estrategia de aprendizaje 16 (Introducción a html)
Introducción a HTML
Programación orientada a objetos (Crear objetos)
Programación orientada a objetos (Creación de clases)
Los tipos de lenguaje de programación
Diseño e instalación de sitios web (Apache HTTP server)
Introducción a la programación orientada a objetos en c (POO)
Lenguajes de programación
Diseño e instalación de sitios web (Definición de un servidor web)
Interfaces para sistemas de gestión de bases de datos
Recursividad en programación
Diseño e instalación de sitios web (El reto del espacio en pantalla / plantil...
Tipos de bases de datos distribuidas

Último (20)

PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
Presentación de Redes de Datos modelo osi
PDF
clase auditoria informatica 2025.........
PDF
Maste clas de estructura metálica y arquitectura
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPT
Que son las redes de computadores y sus partes
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
introduccion a las_web en el 2025_mejoras.ppt
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Sesion 1 de microsoft power point - Clase 1
SAP Transportation Management para LSP, TM140 Col18
Presentación PASANTIAS AuditorioOO..pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Diapositiva proyecto de vida, materia catedra
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Presentación de Redes de Datos modelo osi
clase auditoria informatica 2025.........
Maste clas de estructura metálica y arquitectura
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Power Point Nicolás Carrasco (disertación Roblox).pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Que son las redes de computadores y sus partes
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Influencia-del-uso-de-redes-sociales.pdf
Estrategia de apoyo tecnología grado 9-3
historia_web de la creacion de un navegador_presentacion.pptx

Factorial en C++

  • 2. PÁGINA 02 En este tutorial aprenderemos a hacer una función de factorial en c++ mediante la estructura de control for y también aplicando recursividad. Además veremos cuáles son las ventajas de usar recursividad sobre algunas estructuras de control iterativas. Primero veamos en qué consiste la función factorial. El factorial de un número es la multiplicación de los números que están comprendidos entre 1 hasta dicho número. Para expresar el factorial se suele utilizar la notación n!. Así la definición es la siguiente: n! = 1 x 2 x 3 x 4 x 5 x ... x (n-1) x n Estructura de control for Un bucle for hace que una instrucción o bloque de instrucciones se repita un número determinado de veces mientras se cumpla la condición. for(inicializacion; condicion; incremento/decremento) { instrucción 1; ........... instrucción N; }
  • 3. zona de inicialización zona de condición zona de incremento ó decremento. Se inicializa la variable o variables de control. Se evalúa la condición. Si la condición es cierta se ejecutan las instrucciones. Si es falsa, finaliza la ejecución del bucle y continúa el programa en la siguiente instrucción después del for Se actualiza la variable o variables de control (incremento/decremento) Se pasa al punto 2. A continuación de la palabra for y entre paréntesis deben haber siempre tres zonas separadas por punto y coma: En alguna ocasión puede no ser necesario escribir alguna de ellas. En ese caso se dejarían en blanco, pero los punto y coma deberían aparecer. El funcionamiento de un bucle for es el siguiente: 1. 2. 3. 4. 5. Ahora veremos el ejemplo del factorial implementado en c++: PÁGINA 03
  • 4. PÁGINA 04 #include using namespace std; int main(void){ int i; int fact=1; int numero; cout<<"ingresa un numero: "; cin>>numero; if(numero<0) fact =0; else if(numero==0) fact=1; else{ for (i = 1; i <= numero; i++){ fac = fact*i; } } cout<<"Factorial de "< system("pause"); } Como podemos observar en el ejemplo, primero inicializamos nuestras variables i, fact y numero. Después de ingresar el número por consola procedemos a evaluarlo. Si este es menor a cero, entonces el factorial también será 0, si es cero nuestro factorial será 1, caso contrario procedemos a calcular el factorial con el for.
  • 5. PÁGINA 05 En nuestro for inicializamos nuestra variable iterativa i en 1, esta se incrementará en 1 por cada iteración hasta que sea igual a número, dentro de las instrucciones por cada iteración se efectúa una multiplicación de todos los valores que va tomando i, en nuestro caso de 1 hasta el número y los va almacenando en la variable fact. Una vez terminado el programa, mostramos en pantalla nuestro resultado. Recursividad En palabras simples, la recursividad es cuando una función tiene la característica de poder llamarse a sí misma dentro de sus instrucciones; gracias a esto, podemos utilizar a nuestro favor la recursividad en lugar de la iteración para resolver determinados tipos de problemas. A continuación veremos el ejemplo de la función factorial usando recursividad: #include using namespace std; int factorial(int n) { if(n < 0) return 0; else if(n > 1) return n*factorial(n-1); return 1; } int main(void) { int numero; cout<<"ingresa un numero: "; cin>>numero; cout<<"Factorial de "<; }
  • 6. PÁGINA 06 Como podemos observar en nuestro ejemplo nuestra función factorial recibe un valor n, evaluamos dicha variable, si esta es menor que cero la función nos retorna el valor 0, si n es mayor que uno llamamos otra vez a nuestra función factorial pero con n-1 y a esto lo multiplicamos por n, esto se repetirá hasta que n llegue a tomar el valor de 1. La mejor forma de entenderlo podría ser: 5! n=5 -> factorial(5) -> 5*factorial(4) -> 5*4*factorial(3) -> 5*4*3*factorial(2) ->5*4*3*2*factorial(1) -> 5*4*3*2*1 -> 120 Principio importante: Toda solución recursiva puede encontrar una solución iterativa equivalente, mientras que lo contrario no siempre es cierto. Por cuestiones de uso de memoria y rapidez se recomienda recursividad en lugar de interacciones. La diferencia que podemos encontrar en la función recursiva y la iterativa es que la recursiva tienes que hacer constantes llamadas en las funciones que tienes en tu algoritmo o programa, mientras que en la iterativa no son necesarias tantas llamadas para la solución del problema. Para saber mas del tema ver el siguiente video: https://www.youtube.com/watch? v=yNWuEDd8iQs