[ Foro de C++ ]

No entiendo por qué no me funciona este ciclo for

08-Jul-2023 13:41
Invitado (Chanslord)
3 Respuestas

Soy nuevo programando y estoy aprendiendo C++. Hace poco hice este programa:
#include<iostream>

using namespace std;

int main(){
   double numero,factorial=1;
   do{
       cout<<"Digite un numero entero: ";cin>>numero;
   }while(numero <=1);

   for(int i = 1; i <= numero; i++)
   {
       factorial*=i;
       cout<<i<<"*";
   }
   cout<<endl<<"La factorial de "<<numero<<" es: "<<factorial<<endl;



   system("pause");
   return 0;
}
Este programa como podeis ver, genera una cadena de multiplicaciones 1*2*3*4 y así sucesivamente hasta el numero que digites. Ahora el problema es que a partir del  numero 16 aparecen numeros negativos o 0.
Que alguien me ayude. :(


08-Jul-2023 17:54
Nacho Cabanes (+84)

Ten en cuenta que los factoriales son números MUY grandes. A partir de cierto punto, los resultados ya no caben dentro de un "int".


09-Jul-2023 05:48
Mengo Robles

Por eso probé a cambiar int por double y me sigue dando igual.


09-Jul-2023 05:51
Mengo Robles

No es nada, ya da igual. Me acabo de dar cuenta que se me olvidó darle a compilar xd.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)