Hirdetés

Keresés

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

  • ToMmY_hun
    senior tag

    Hi!

    Házi feladat része lenne.

    Röviden:

    Van egy "public static boolean[] firstPrimes(int n)" metódusom amely visszaad egy array-t, hogy [0 n] melyik prímszám. pl: {false, false, true, true, false, true, false, true}.

    Köv lepésben a "public static int printFirstPrimes(boolean[] firstPrimes)" metódussal az előző metódus segítségével meg kéne számolni hány prímszám, melyek ezek és ki is kéne ezeket az eredményeket íratni.

    Elképzelésem van, persze nyilván sz@r, mint mindig :D:

    public static int printFirstPrimes(boolean[] firstPrimes){

    int j=0;

    for (int i = 0; i < firstPrimes.length; i++) {

    if (firstPrimes==true)

    j++;

    }

    int[] b = new int[j];

    for (int w = 0; w < b.length; w++){

    if (firstPrimes[w]==true){

    b[w]=w;

    System.out.print(b[w] + " ");

    }

    }

    System.out.print(j);

    return j;

    }

    Zavar hogy int-es a metódus és nem void-os, és így nem tudom hogy lehet e vele egyáltalán kiíratni az eredményt.

    1. Formázd a kódot, ez így nagyon hányingerkeltő. Van itt is programkód kompatibilis tag, de javaslom a pastebin vagy egyéb weboldal használatát.

    2. Le kell mentened a prím ellenőrzés eredményét? Ezt egy külön tömbben kell megtenned? Ha ezt explicit módon nem említi a feladat, akkor a megközelítésed eléggé erőforrás pazarló. (amennyiben kéri és ezt ilyen módon teszi, akkor szólj az oktatónak hogy ne tanítson ilyen butaságokra)

    3. Használj ranged for ciklust, ha nem kell az indexet felhasználnod.

    4. A sima array helyett használj dinamikus tömböt, például ArrayList-et, és megspórolhatod vele a második for ciklust.

    5. Több értéket akarsz kiírni, miért egy int-tel térsz vissza? Számomra eléggé katyvasz a feladat leírás. Le tudod írni az eredetit?

    Egyébként a tömb indexelést alapból felejtsd el. Akkor kell használni, ha nincs más megoldás, minden egyéb esetben kerülendő.

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