Marihona Skrevet 28. september 2008 Skrevet 28. september 2008 Som tittelen sier så finner jeg ikke ut hvordan man får et program til å skrive ut oddetall, ved hjelp av en for-løkke. Er det noen som kan gi meg noen tips så jeg kommer i gang? Ganske ny på dette å det går ganske tregt ennå, har googlet i en time nå uten å finne ut noe Nettopp begynt med for-løkker så jeg er ganske blank på det. Skal få det til å skrive ut oddetallene mellom 3-21.
RavnTM Skrevet 28. september 2008 Skrevet 28. september 2008 (endret) Bruk rest operatoren! (modulo, %) for (int i = 3; i <= 21; ++i) { if ( i % 2 == 0) continue; // Ikke oddetall System.out.println( i ); } Den der burde fungere. Endret 28. september 2008 av RavnTM
Marihona Skrevet 28. september 2008 Forfatter Skrevet 28. september 2008 Takker :!: Skal teste det ut.
DeadManWalking Skrevet 28. september 2008 Skrevet 28. september 2008 (endret) Når du spør om hjelp må du også spørre om en forklaring på hvorfor nettopp DET fungerer. Hadde du klart samme oppgave på en eksamen med en litt annen vri? Videre hvis det er noe som er uklart nå, ja. Det fungerer sikkert... Så spør hvis du lurer. Det er nok av dyktige folk her Jeg får et lite inntrykk av at alle høyskoler og universiteter bruker Java for å lære folk programmering, det er vel kanskje en av grunnene til at mange kan det. Endret 28. september 2008 av data_jepp
Marihona Skrevet 28. september 2008 Forfatter Skrevet 28. september 2008 Jeg rotet bare med hvordan jeg skulle få programmet til å forstå når det var oddetall, tenkte ikke så langt som å sjekke etter rest. Går treigt noen ganger. Så forstår hvorfor det fungerer.
medlem-40751 Skrevet 28. september 2008 Skrevet 28. september 2008 (endret) kan selvfølgelig bruke modulo-operatoren, men man må ikke. Jeg ville gjort det slik: for (int i = 3; i <= 21; i = i+2) { System.out.println(i); } Endret 28. september 2008 av Mjausann
pgdx Skrevet 28. september 2008 Skrevet 28. september 2008 for (int i = 3; i <= 21; System.out.println(i), i = i+2);
sygard Skrevet 28. september 2008 Skrevet 28. september 2008 (endret) for (int i = 3; i <= 21; System.out.println(i), i = i+2); for (int i = 1; i <= 19; System.out.println(i+=2)); Hehe, måtte bare gjøre det Du kan også finne oddetall ved å bruke & operatoren. for(int i=3;i<=21;i++) if((i&1)==1) System.out.println(i); Endret 28. september 2008 av sygard
pgdx Skrevet 28. september 2008 Skrevet 28. september 2008 Hehe, måtte bare gjøre det It's war! (må bare tenke litt)
pgdx Skrevet 29. september 2008 Skrevet 29. september 2008 (endret) Nei, det går nok ikke an å gjøre det på færre enn 43 tegn (uten å ta med main-kroppen) dersom man skal ha tallene adskilt. for(int i=1;i<20;System.out.println(i+=2)); Edit: Hele klassen blir på 88 tegn. class O{public static void main(String[]a){for(int i=1;i<20;System.out.println(i+=2));}} Endret 29. september 2008 av pgdx
pgdx Skrevet 29. september 2008 Skrevet 29. september 2008 (endret) In python: [2*x+1 for x in range(11)] (list comprehension ftw) edit: gjør samme nytten: range(3,22,2) Endret 29. september 2008 av pgdx
P@rm@nn Skrevet 29. september 2008 Skrevet 29. september 2008 (endret) Common Lisp: (loop for i from 3 upto 21 by 2 collect i) eller for faktisk å printe tallene: (loop for i from 3 upto 21 by 2 do (print i)) Endret 29. september 2008 av P@rm@nn
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå