Sunteți pe pagina 1din 5

1.

Permutari:
#include <iostream>
#include <fstream>
using namespace std;
ofstream out("combinari.out");
int n,m,x[20];
void afisare()
{
int i;
for(i=1;i<=m;i++)
out<<x[i]<<' ';
out<<'\n';
}
void bkt(int k)
{
int i;
if(k>n) afisare();
else
for(i=x[k-1]+1;i<=n-m+k;i++)
{
x[k]=i;
bkt(k+1);
}
}
int main()
{
cin>>n>>m;
bkt(1);
out.close();
return 0;
}
2.Aranjamente:
#include <iostream>
#include <fstream>
using namespace std;
ofstream out("aranjamente.out");
int n,m,x[20];
void afisare()
{
int i;
for(i=1;i<=m;i++)
out<<x[i]<<' ';
out<<'\n';
}
int valid(int k)
{
int i;
for(i=1;i<=k-1;i++)
if(x[i]==x[k])
return 0;
return 1;
}
void bkt(int k)
{
int i;
if(k>m) afisare();
else
for(i=1;i<=n;i++)
{
x[k]=i;
if(valid(k))
bkt(k+1);
}
}
int main()
{
cin>>n>>m;
bkt(1);
out.close();
return 0;
}
3.Combinari:
#include <iostream>
#include <fstream>
using namespace std;
ofstream out("combinari.out");
int n,m,x[20];
void afisare()
{
int i;
for(i=1;i<=m;i++)
out<<x[i]<<' ';
out<<'\n';
}
void bkt(int k)
{
int i;
if(k>n) afisare();
else
for(i=x[k-1]+1;i<=n-m+k;i++)
{
x[k]=i;
bkt(k+1);
}
}
int main()
{
cin>>n>>m;
bkt(1);
out.close();
return 0;
}

S-ar putea să vă placă și