[ Foro de C++ ]
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. :(
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".
Por eso probé a cambiar int por double y me sigue dando igual.
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.)