Tarea
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 1hasta 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 estotalmente innecesario.
Factorial de un numero con ciclo while
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
//Procedimiento principal
intmain()
{
//Variables
int x, factorial, numero;
//Solicitamos un número
printf("Ingrese numero para obtener el factorial:\t");
scanf("%d",&numero);
//Inicializamos variables.
x = 1;
factorial= 1;
//Ciclo mientras x sea menor o igual al número
//ingresado
while(x <= numero)
{
//Factorial es igual asimismo por
//el valor de equis incremental
factorial = factorial * x++;
}...
Regístrate para leer el documento completo.