Número combinatorio

Ignacio Calvet


/* Programa que calcula el número combinatorio de dos
números naturales dados e indica el significado del resultado.
Para ello, simplemente se aplica la definición de número
combinatorio, a saber, el número combinatorio de n sobre m
(con n>=m) es n!/(m!(n-m)!) ó es 0 en el caso de que m>n. */

#include <iostream>
using namespace std;

int main()
{
 double i, n, m, r, factorialN, factorialM, factorialR, C;

 cout << "Calculo del numero combinatorio de dos dados."
      << endl << endl;
 cout << "Introduce dos enteros positivos: ";
 cin >> n >> m;
 cout<<endl<<endl;

 if (n<m)
 cout<<"El numero combinatorio de "<<n<<" sobre "<<m<<" es 0."<<endl;

 else
{
 factorialN = 1;
 for (i=1; i<=n; i++)
 { factorialN = factorialN*i; }

 factorialM=1;
 for (i=1; i<=m; i++)
 { factorialM = factorialM * i; }

 r=n-m;
 factorialR=1;
 for (i=1; i<=r; i++)
 { factorialR = factorialR * i; }

 C = factorialN/(factorialM*factorialR);

 cout<<"El numero combinatorio de "<<n<<" sobre "<<m<<" es: "<<C;
}

 /* Notar que en el caso de que m, n ó n-m sea 0, el bucle for
 no se produce y estamos asignando al factorial de 0 el valor 1,
 lo cual es cierto por definicion. */

 cout <<endl<<endl<<"Este es el numero de posibles combinaciones de "
      <<n<<" elementos tomados de "<<m<<" en "<<m<< endl << endl;

 return 0;
}
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s