elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Solucionado] Problema para sacar factorial de un entero
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Problema para sacar factorial de un entero  (Leído 2,849 veces)
Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
[Solucionado] Problema para sacar factorial de un entero
« en: 31 Julio 2014, 21:10 pm »

 Hola gente del foro, estoy haciendo un ejercicio que me pide que haga un programa donde se ingrese un número entero no negativo y que imprima su factorial

Ejemplo:
 Si el número ingresado por ejemplo sería 5, para sacar el factorial se hace 5*4*3*2*1= 120, esto mismo intento hacer en el programa, pero no obtengo los resultados que quiero.

Dejo el código de el programa que hice :)

main.cpp
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4. using std::cin;
  5.  
  6. #include "Factorial.h"
  7.  
  8. int main()
  9. {
  10. int numero;
  11. cout <<"Escriba un numero entero no negativo para calcular su factorial!\n"
  12. <<"Numero: ";
  13. cin >> numero;
  14.  
  15. Factorial Factorial1(numero);
  16. Factorial1.establecerFactorial();
  17. cout <<"El factorial es: " <<Factorial1.obtenerFactorial() <<endl;
  18. cin.get();
  19. cin.get();
  20. return 0;
  21. }
Factorial.h
Código
  1. class Factorial
  2. {
  3. public:
  4. Factorial(int);
  5. //Funciones establecer
  6. void establecerNumero(int);
  7. void establecerFactorial();
  8. //Funciones obtener
  9. int obtenerFactorial();
  10.  
  11. private:
  12. int numeroFactorial;
  13. int resultado;
  14. };
Factorial.cpp
Código
  1. #include <iostream>
  2. using std::cout;
  3.  
  4. #include "Factorial.h"
  5.  
  6. Factorial::Factorial(int numero)
  7. {
  8. establecerNumero(numero);
  9. }
  10.  
  11. //Funciones Establecer
  12.  
  13. void Factorial::establecerNumero(int numero)
  14. {
  15. if (numero > 0)
  16. {
  17. numeroFactorial= numero;
  18. }
  19.  
  20. else
  21. {
  22. cout <<"\nEl numero ingresado no es correcto!\n";
  23. }
  24. }
  25.  
  26. void Factorial::establecerFactorial()
  27. {
  28. int numeroMultiplicador = numeroFactorial - 1;
  29.  
  30. while (numeroMultiplicador != 0)
  31. {
  32. resultado= (resultado + (numeroFactorial * numeroMultiplicador));
  33. --numeroMultiplicador;
  34. }
  35. }
  36.  
  37. //Funciones Obtener
  38.  
  39. int Factorial::obtenerFactorial()
  40. {
  41. return resultado;
  42. }


Desde ya gracias por cualquier ayuda  :)


« Última modificación: 31 Julio 2014, 22:55 pm por 718208 » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Problema para sacar factorial de un entero
« Respuesta #1 en: 31 Julio 2014, 22:05 pm »

"Creo" que esto te arregla el desajuste:

Código
  1. void Factorial::establecerFactorial()
  2. {
  3. int numeroMultiplicador = numeroFactorial ;
  4. resultado = 1 ;
  5.  
  6. while (numeroMultiplicador != 0)
  7. {
  8. resultado  *=  numeroMultiplicador ;
  9. --numeroMultiplicador;
  10. }
  11. }

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





En línea

Mario Olivera

Desconectado Desconectado

Mensajes: 108


Ser loco es pensar diferente.


Ver Perfil
Re: Problema para sacar factorial de un entero
« Respuesta #2 en: 31 Julio 2014, 22:53 pm »

"Creo" que esto te arregla el desajuste:

Código
  1. void Factorial::establecerFactorial()
  2. {
  3. int numeroMultiplicador = numeroFactorial ;
  4. resultado = 1 ;
  5.  
  6. while (numeroMultiplicador != 0)
  7. {
  8. resultado  *=  numeroMultiplicador ;
  9. --numeroMultiplicador;
  10. }
  11. }


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





Hola leosansan

enves de resultado=1 puse resultado= numeroFactorial y ahí andubo

Muchas Gracias por tu ayuda, Saludos!
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: [Solucionado] Problema para sacar factorial de un entero
« Respuesta #3 en: 1 Agosto 2014, 08:25 am »

Si luego quieres subir un escalón... también lo puedes hacer con templates:

Código
  1. template< int N >
  2. struct Factorial
  3. {
  4.    enum { value = N * Factorial< N - 1 >::value };
  5. };
  6.  
  7. template<>
  8. struct Factorial< 0 >
  9. {
  10.    enum { value = 1 };
  11. };
  12.  
  13. int main( )
  14. {
  15.  std::cout << "Factorial de 4: " << Factorial< 4 >::value << std::endl;
  16.  std::cout << "Factorial de 5: " << Factorial< 5 >::value << std::endl;
  17. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO]Ayuda Con Bot para sacar Usuarios
Programación Visual Basic
RED_HORSE 9 5,234 Último mensaje 10 Marzo 2008, 06:00 am
por RED_HORSE
[SOLUCIONADO] como puedo sacar el factorial de un numero en c#
.NET (C#, VB.NET, ASP)
joalbela 2 15,375 Último mensaje 31 Mayo 2009, 07:21 am
por joalbela
Problema con Factorial.. « 1 2 »
Programación C/C++
Komodo 10 5,648 Último mensaje 6 Septiembre 2010, 11:00 am
por Komodo
Problema función factorial recursiva
Java
Oblivi0n 1 2,282 Último mensaje 4 Octubre 2012, 19:03 pm
por die_guito
[Solucionado] Problema en ejercicio: Sacar factorial de entero positivo (C++)
Programación C/C++
Mario Olivera 2 3,148 Último mensaje 21 Agosto 2014, 15:35 pm
por Mario Olivera
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines