Cum pot face un program ce îmi afișează toate combinările din 9 cate 3.
Răspunsuri la întrebare
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int n,sol[100],p;
char v[100];
void afisare()
{
for(int i=1;i<=p;i++)
cout<<sol[i]<<' ';
cout<<endl;
}
void init(int k)
{
sol[k]=0;
}
int succesor(int k)
{
if(sol[k]<n)
{
sol[k]++;
return 1;
}
return 0;
}
int valid(int k)
{
for(int i=1;i<k;i++)
if(sol[k]==sol[i])
return 0;
if(k>1)
if(sol[k]<sol[k-1])
return 0;
return 1;
}
void bkt(int k)
{
if(k==p+1)
afisare();
else
{
init(k);
while(succesor(k))
if(valid(k))
bkt(k+1);
}
}
int main()
{
cin>>n>>p;
bkt(1);
return 0;
}
Pentru combinări de 9 luate câte 3 foloseşti: n=9 şi p=3