Az alabbi feladat kodja kellene c++ ban, backtrackinget hasznalva. Valaki segit?
1. Egy n számban az azt alkotó "egyesek" között (n-1) köz van. Ebből kell választanod 2 db helyet, amelyek lehetnek azonosak (ismétléses kombináció).
2. Kiválasztod az első számhoz az első határoló elemet. Majd későbbi ciklusban sorra a többit növekvő sorrendben.
3. Az előző ciklusba ágyazva kiválasztod a második számhoz a második határoló elemet. Először ugyanazt, mint az első, majd sorra a nála nagyobb sorszámúakat.
4. Meghatározod a számokat. Pl. ha az első határolóelem a 4., akkor az első szám a 4, ha az 5., akkor 5, stb.
5. Ha a kiválasztott 2. határolóelem ugyanaz, mint az első, akkor csak 2 elemű a felbontás: k, n-k.
6. Ha a kiválasztott 2. határolóelem eltér az elsőtől, akkor a számok: k, m-k, n-m.
7. A számokat sorrendbe teszed.
8. Az első ilyen szám halmazt eltárolod egy (n-1)^2 * 3 elemű tömb első sorába. Ha csak két szám van, nem három, akkor a 3. elem helyére "NULL" kerül.
9. Amikor a következő számkettest vagy számhármast megtaláltad, akkor azt összeveted az összes előzővel, és ha valamelyikkel egyezik, akkor elveted, számolod a következőt. Ha nem egyezik, akkor eltárolod a tömb legelső üres sorába.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!