/*Implemente um programa que calcule e escreva o numero de arranjos e combinações
de m elementos p a p, daos pelas formulas
P M! P M!
A = ----- C = ------
M (M-P)! M p!(M-P)!
Se M
#include
//#include
void menu(); //Função imprime menu
int fat(int m); //Calcula fatorial de cada numero solicitado
int arr(int p, int m); //recebe o valor de dois numeros P e M e retorna o arranjo de P e M.
int com(int p, int m); //recebe o valor de dois numeros P e M e retorna a combinação de P e M.
void main()
{
int p,m; //p e m inteiros
float a,c; //arranjo combinação
menu();
cin >> p >> m;
if(p>m)
{
clrscr();
cout << "\nP eh maior que M, portanto, o numero de arranjos e combinacoes eh (0) zero\n";
cout << "\nFim do programa:\n";
getch();
}
else
{
while(!(p==0&&m==0))
{
a=arr(p,m);
cout << "\nNumero de arranjos:\t" << a;
c=com(p,m);
cout << "\nNumero de combinacoes:\t" << c;
getch();
menu();
cin >> p >> m;
}
clrscr();
cout << "\n0 0 ==> Fim do programa:\n";
getch();
}
}//Fim de main
void menu() //Função imprime menu
{
clrscr();
cout << "\nDIGITE O PAR DE NUMEROS PARA CALCULO DE ARRANJO E COMBINACAO, ou 0 0 para terminar\nDIGITE NA SEGUINTE ORDEM: P M\t";
}
int fat(int m) //Calcula fatorial
{
int a;
int i;
a=1;
for(i=m;i>1;i--)
a*=i;
return a;
}
int arr(int p, int m) //calcula um arranjo
{
int a;
a=fat(m)/fat(m-p); //Fatorial de m dividido por Fatorial de m-p
return a;
}
int com(int p, int m) //Calcula as combinações possiveis
{
int c;
c=fat(m)/(fat(p-m)*fat(p));
return c;
}