public class Luvut { /** * Testaa metodin parillisetLuvut() toimintaa. */ public static void main(String[] args) { int alku = Integer.parseInt(args[0]); int loppu = Integer.parseInt(args[1]); int[] parilliset = parillisetLuvut(alku, loppu); //tulostaa parilliset-taulukon alkiot for (int i = 0; i < parilliset.length; i++) { System.out.println(parilliset[i]); } } /** * Palauttaa uuden taulukon, jossa on parilliset luvut * suljetulta väliltä [alku, loppu]. * * Alkuehto: 0 <= alku && alku <= loppu */ public static int[] parillisetLuvut(int alku, int loppu) { int i = 0; int pituus = 0; while ((i<=alku) & (i>=loppu)) { if (i % 2 == 0) { pituus = pituus + 1; } i=i+1; } int[] parilliset = new int [pituus]; int j = 0; int lkm = 0; while ((j<=alku) & (j>=loppu)) { if (j % 2 == 0) { parilliset[lkm]=j; lkm = lkm + 1; } j = j+1; } return parilliset; } }
Mod. lisäsi kooditagit
Jos tuon nyt haluaa mahollisimman vähillä muutoksilla toimimaan, niin
tyttö kirjoitti:
int i = 0;
int i = alku;
Turhaa kelata läpi lukuja 0-alku, kun ei niistä olla kiinnostuneita.
tyttö kirjoitti:
while ((i<=alku) & (i>=loppu)) {
while(i <= loppu) {
Lohkoa toistetaan niin kauan kuin ("while") ehto on tosi. Tuo alkuperänen ehtos ei oo koskaan tosi, i kun ei koskaan oo yhtäaikaa pienempi kuin alku ja suurempi kuin loppu.
Lisäksi & on eri asia kuin &&. Looginen "ja" merkataan kahella et-merkillä. Tuo yks et-merkki on bitti-or, jonka toimintaa sulle tuskin on vielä opetettukaan.
tyttö kirjoitti:
int j = 0;
int j = alku;
Sama kuin yllä.
tyttö kirjoitti:
while ((j<=alku) & (j>=loppu)) {
while(j <= loppu) {
Ja sama kuin yllä.
Ja sitten parannusvinkkejä:
Lukualueen käyminen läpi kahesti on tyhmää.
Parillisten lukujen tapauksissa on helppo ennustaa, montako lukua vastauksessa tulee olemaan ((loppu - alku) / 2), joten taululle osataan varata sopiva määrä tilaa jo etukäteen käymättä lukuja erikseen läpi.
Jos ennustaminen on vaikeampaa, kannattaa käyttää Vector-luokkaa, joka on kuin taulukko, joka muuttaa kokoaan tarpeen mukaan. Jos vektorin käyttö on jo opetettu, voi (ja kannattaa) sitä käyttää jo tässä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.