Sei sulla pagina 1di 4

#include<conio.

h>

using namespace std;

int main() {

float fact;

int i;

float n;

cout << "digite un numero" << endl;

cin >> n;

fact = 1;

if (n>=0) {

for (i=1;i<=n;i++) {

fact = fact*i;

cout << "el factorial es" << fact << endl;

} else {

cout << "no existe factorial" << endl;

getch 0;

Proceso factorialdeunnumero
Definir fact, n como real;
Definir I como entero;
Escribir "digite un numero";
Leer n;
fact<-1;
si n>=0 entonces
para I<-1 hasta N con paso 1 hacer
fact<-fact*I;
FinPara
escribir "el factorial es",fact;
Sino
Escribir "no existe factorial";

FinSi
#include
int factorial(int n)
{
if(n<2)
return 1;
else
return n * factorial(n-1);
}
int main()
{
int num=0;
printf("::CALCULAR FACTORIAL::n");
printf("Introduce un numero: ");scanf("%i",&num); //Pedir
variable num
printf("tEl resultado es: %in", factorial(num)); //Llama la
funcion e imprime resultado
return 0;
}

El caso base es que cuando n valga 1 o 0 retorna un 1, de lo contrario retorna la multiplicacin de


n * el factorial del numero anterior n-1. Supongamos que introducimos el nmero 3, cuyo factorial
es 6 (3*2*1 = 6).

1. n=3 No entra al caso base. Guardamos para despus la operacin 3 * factorial(2)

2. n=2 No entra al caso base. Guardamos para despus la operacin 2 * factorial(1)

3. n=1 Entra al caso base. Retorna 1, por lo tanto factorial(1) = 1

4. Hacemos la ltima operacin que guardamos 2 * factorial(1) = 2 * 1 = 2, por lo tanto


factorial(2) = 2

5. Hacemos la siguiente operacin que guardamos 3 * factorial(2) = 3 * 2 = 6

6. El factorial es 6

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 "<;

El funcionamiento de un bucle for es el siguiente:

1. Se inicializa la variable o variables de control.


2. Se evala la condicin.
3. Si la condicin es cierta se ejecutan las instrucciones. Si es falsa, finaliza la
ejecucin del bucle y contina el programa en la siguiente instruccin despus
del for
4. Se actualiza la variable o variables de control (incremento/decremento)
5. Se pasa al punto 2.

Ahora veremos el ejemplo del factorial implementado en c++:

#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");
}

FACTORIAL UTILIZANDO LA FUNCION

#include <stdio.h>
void factorial (int x) /* definicin de funcin */
{
int i;
long int fac = 1;
for (i=2; i<=x; i=i+1) fac=fac*i;
printf ("El factorial de %d es %ld", x, fac);
}
main () /* funcin principal */
{
int a;
do
{
printf ("\n Introduce el nmero ");
scanf ("%d", &a);
if (a>0)
factorial (a);
} while (a > 0);
}

Potrebbero piacerti anche