Hogyan lehetne azt megoldani, hogy X számú helyre kéne egymás után 1-vagy 0-t írni és az összes lehetőséget kiírja?
Csak a logika érdekel, valami egyszerű programnyleven, ha le tudjátok írni, akkor megköszönöm.
pl: X = 3 000,001,010,011,100,101,110,111
Szia.
Nézd meg ezt : [link]
De ha csak két elemet kell variálni akkor a következő egyszerű módszerrel megoldható a dolog (mondatszerű leirásban) :
Max elemszám meghatározása (Max elemszám = 2 az X-dik hatványon - 1) : X=3 esetén 2^3-1 := 2*2*2-1 = 8-1 = 7
1. Ciklus i=0 to max elemszámig
2. i értékénének átváltása 2 számrendszerbe : http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
3. a kettes számrendszerbeli szám kirása
4. Ciklus vége
Sok sikert.
üdv.
Ja, hogy variáció. Igen, amit #1 írt az a legegyszerűbb, de emulálhatod is a dolgot, kvázi kettes számrendszerben számolva: feltöltesz egy tömböt nullákkal, és futtatsz egy ciklust (később meghatározzuk a feltételt). A ciklusmagon belül elindítasz egy ciklust, amiben növeled az i. elem értékét (i indul 0-tól)...
Inkább leírom kódban:
const int X = 8;
int tomb[X] = {0};
void print()
{
for (int i(0); i < X; ++i)
{
cout << tomb[i] << ' ';
}
cout << '\n';
}
int main()
{
int max = 0;
while (max < X)
{
print();
int i(0);
while (2 == ++tomb[i])
{
tomb[i] = 0;
++i;
}
max = i;
}
}
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!