Informatică, întrebare adresată de girlis2crazy, 9 ani în urmă

Se citește un număr natural nenul n. Să se afişeze, în ordine lexicografică, toate submulțimile nevide ale mulţimii {1,2,..,n} pentru care diferența dintre oricare două elemente este mai mare decât 1. (backtrac

Care sunt conditiile care trebuie puse ?


girlis2crazy: da
AntiEaglesDavids: ce ai scris pana acum?
girlis2crazy: numai prostii :))
AntiEaglesDavids: hai scrie aici ca sa te pot ajuta
girlis2crazy: #include<iostream>
using namespace std;
int st[100],n,k,ev,as,i;
void init()
{st[k]=0;
}
int succesor()
{if(st[k]<n)
{st[k]++;
return 1;}
else return 0;}
int valid()
{for(i=1;i<=k;i++)
{if(st[k]<st[i])
return 0;
else
if(k>1)
if(st[k]-st[i]>=1)
return 0;
return 1;}
int solutie()
{return k==n;}
void tipar()
{for(i=1;i<=k;i++)
cout<<st[i]<<" ";
cout<<endl;}
void bt()
{k=1;
init();
while(k>0)
{as=1;
ev=0;
while(as&&!ev)
{as=succesor();
if(as)
ev=valid();
}
if(as)
if(solutie())
tipar();
else
{k++;
in
AntiEaglesDavids: of, identarea asta :)), incearca sa pui codul pe pastebin ca sa inteleg ceva
girlis2crazy: http://pastebin.com/nZ14yt2m
AntiEaglesDavids: e la fel...
AntiEaglesDavids: si te cam complici cu functiile alea
AntiEaglesDavids: incearca sa ai doar functia cu bt si de afisare

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
0
Incearca sa ai mereu, la back 2-3 functii maxim:


Anexe:

AntiEaglesDavids: si incearca sa identezi mai bine codul data viitoare, cat despre multimi, ar trebui sa incepi cu submultimi normale apoi sa treci la din alea mai complicate
Alte întrebări interesante