[Solucionado] Problema en ejercicio: Sacar factorial de entero positivo (C++)

Iniciado por Mario Olivera, 21 Agosto 2014, 14:43 PM

0 Miembros y 1 Visitante están viendo este tema.

Mario Olivera

 Hola gente, disculpen las molestias, estoy haciendo unos ejercicios de un libro de C++ y me pide que haga un programa el cual el usuario ingrese un numero entero positivo y este saque su valor..

Para el que no sepa como sacar el factorial de un entero positivo voy a explicarles:

n representa el valor ingresado por el usuario, osea el número entero positivo

Entonces para sacar su factorial se implementa esto:

n= n. n-1 . n-1 .n-1..... así hasta lllegar a 1, por ejemplo si el usuario ingresa el número 5 el programa tendrá que hacer esto:

5= 5 . 4 .3 .2 .1

Dejo el código del programa que hice (el ejercicio me pide hacerlo con for):

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;

int main()
{
int numero;
cout <<"Ingrese un entero positivo para calcular su factorial: ";
cin >> numero;
   int factorial=0;
int numero2=numero;
for (int contador=1;contador < numero;contador++)
{
if (contador == 1)
{
factorial+=numero2 * numero2-1;
numero2-= 2;

}

else
{
factorial*= numero2;
numero2--;
}


}

cout <<"\nFactorial: " <<factorial;
return 0;
}

leosansan

Cita de: 718208 en 21 Agosto 2014, 14:43 PM
...............................................
(el ejercicio me pide hacerlo con for):
...............................................

Ya que es con un for, prueba algo como esto:

Código (cpp) [Seleccionar]
 int factorial=1;
 for (int contador=2;contador <= numero;contador++)
   factorial *= contador;


Creo que el código se explica por si solo.  ;)

¡¡¡¡ Saluditos! ..... !!!!



Mario Olivera

Cita de: leosansan en 21 Agosto 2014, 15:18 PM
Ya que es con un for, prueba algo como esto:

Código (cpp) [Seleccionar]
 int factorial=1;
 for (int contador=2;contador <= numero;contador++)
   factorial *= contador;


Creo que el código se explica por si solo.  ;)

¡¡¡¡ Saluditos! ..... !!!!



Muchas gracias leosansan, me has solucionado el problema  ;-)