Salve a tutti
vorrei chiedervi se potevate dare uno sguardo a questo programma che dovrebbe calcolare le disposizioni, combinazioni con ripetizione e semplici e le permutazioni
#include <iostream.h>
#include <math.h>
float fattoriale( int n);
long disposizioni (int n, int k);
long combinazioni (int n, int k );
int main()
{int k;
int nu,scelta,ris;
do{
      cout<<"::::::::::::::::::::::::::::::::::::::"<<endl;
      cout<<":: Quale operazione vuoi svolgere?  ::"<<endl;
      cout<<":: 1) permutazioni                  ::"<<endl;
      cout<<":: 2) disposizioni semplici         ::"<<endl;
      cout<<":: 3) disposizioni con ripetizione  ::"<<endl;
      cout<<":: 4) combinazioni semplici         ::"<<endl;
      cout<<":: 5) combinazioni con ripetizione  ::"<<endl;
      cout<<"::::::::::::::::::::::::::::::::::::::"<<endl;
      cout <<"inserire il numero corrispondente alla scelta "<<endl;
      cin>>scelta;
     
      cout<<"inserisci n ";
      cin>>nu;
      cout<<"inserisci k";
      cin>> k;
     
switch (scelta)
{case 1:
 cout<<fattoriale(nu)<<endl;
 break;
case 2:
 cout<<disposizioni(nu,k)<<endl;
 break;
case 3:
 cout<<pow(nu,k)<<endl;
 break;
 
case 4:
  cout<<combinazioni(nu,k)<<endl;
break;
case 5:
     cout<<combinazioni (nu+k-1,k)<<endl;
break;}
cout<<"vuoi continuare il programma ? s/n "<<endl;
system ("pause");
system ("cls");}while (ris=='s');
     
return 0;}
float fattoriale( int n)
{if (n<=1)
 {return 1;}
   else
 {return n*fattoriale(n-1);}}
 
 
 long disposizioni (int n, int k)
 {return long (fattoriale (n)/fattoriale (n-k));}