Informatică, întrebare adresată de P0rt0c4l4, 8 ani în urmă

Cum pot face un program ce îmi afișează toate combinările din 9 cate 3.

Răspunsuri la întrebare

Răspuns de grasuxxl30
0

#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

Alte întrebări interesante