Hirdetés

Keresés

Új hozzászólás Aktív témák

  • usergefi

    kezdő

    válasz Victoryus #9896 üzenetére

    A szamokDb tömbben az szerepel, hogy az adott számot hányszor húzták ki:

    szamokDb[szamok[i][j]-1]++

    A szamok[I][j] az egyes számok lesznek, a fájlban elindulva pl. 37, 42, 44, 61, 62, 18, 42 stb...
    Kivon még belőle egyet, hogy 0-tól induljon a tömb indexelése (erre mondjuk nem vágom, miért van szükség), így aztán például a legelső esetben a fenti kódrész: szamokDb[37-1]++, a második számnál: szamokDb[47-1]++ és így tovább. Tehát a szamokDb azt fogja tárolni, hogy melyik számot hányszor húzták ki, a tömb indexe lesz a szám-1, amit kihúztak, az értéke pedig hogy hányszor.

    Aztán a kérdéses résznél 2-esével ugrálunk 0-tól kezdve. Mivel -1-et kivontunk, ezért a 0-ás index igazából az 1-es szám, a 2-es a 3-as, a 4-es az 5-ös és így tovább. Majd az értékeket hozzáadjuk a páratlan szám számlálóhoz. Ha mondjuk 1-esből volt 3, 5-ösből 2, akkor eddig 5 páratlan számod lesz.

    A 8-as feladatnál az általad kérdezett 0-e feltételnek is a fentiekben találod meg az értelmét, ha az érték 0, az azt jelenti, hogy egyszer sem húzták ki. Ugyanúgy végigmegyünk a szamokDb tömb prímszámos idexein (megint -1), és megnézzük, hogy kihúzták-e (>0 az értéke), vagy sem (==0).

    A te megoldásod is tökéletes lenne, a fenti megvalósítás nekem is túl absztrakt :)

    Amúgy meg ha ezt a nyelvet fogod használni, akkor sosem kell ilyen kódot írnod majd, vagy max nagyon specifikus esetekben. Ez tipikus magyar oktatásbeli hülyeség, hogy egy olyan nyelvet, amiben az objektum orientáltságot, beépített könyvtárakat és függvényeket, skálázhatóságot, több szálúságot kéne használni (mert erre való), arra kényszerítünk, hogy több dimenziós primitív tömbökkel szivassuk a jónépet :(

Új hozzászólás Aktív témák