ayuda sobre combinaciones

gabriel
30 de Abril del 2004
tengo que hacer un programa que me calcule las combinaciones (utilizando la tecnica del factorial) de 500 elementos tomados de a 50, la cosa es que usando los tipos de variables tradicionales, no me deja calcular la combinacion por arriba de 20 elementos tomados a 10 por ejemplo, o algo asi
me tira un error, obviamente porque el calculo implica un numero mucho mas grande de la capacidad que tienen los tipos para almacenar.
Como hago entonces???

noel solw
30 de Abril del 2004
// program combina.cpp
// written in borland c++ - ver 4.5
// para calcular Combinaciones(500,50) = 500!/(50!*450!) simplificamos
// lo factoriales y nos queda = 451*452* ... *500/50!

#include <iomanip.h>
#include <iomanip.h>

void main()
{
double result = 1;
for(int x = 451;x <= 500;x++) // calculo de 451*452*...*500
{
result *= x;
cout << setw(20) << result;
}
cout << endl << endl;
for(x = 2;x <= 50;x++) // division por 1*2*3...*50
{
result /= x;
cout << setw(20) << result;
}
cout << endl << endl;
cout << "Combinaciones(500,50) = " << result << endl << endl;
cout << "end of program - good bye ! ! !" << endl;
} // MAIN