Marihona Skrevet 28. september 2008 Del 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. Lenke til kommentar
Vial Skrevet 28. september 2008 Del Skrevet 28. september 2008 Les om modulo (%-operatoren) Lenke til kommentar
RavnTM Skrevet 28. september 2008 Del 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 Lenke til kommentar
Marihona Skrevet 28. september 2008 Forfatter Del Skrevet 28. september 2008 Takker :!: Skal teste det ut. Lenke til kommentar
DeadManWalking Skrevet 28. september 2008 Del 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 Lenke til kommentar
Marihona Skrevet 28. september 2008 Forfatter Del 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. Lenke til kommentar
medlem-40751 Skrevet 28. september 2008 Del 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 Lenke til kommentar
pgdx Skrevet 28. september 2008 Del Skrevet 28. september 2008 for (int i = 3; i <= 21; System.out.println(i), i = i+2); Lenke til kommentar
sygard Skrevet 28. september 2008 Del 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 Lenke til kommentar
pgdx Skrevet 28. september 2008 Del Skrevet 28. september 2008 Hehe, måtte bare gjøre det It's war! (må bare tenke litt) Lenke til kommentar
pgdx Skrevet 29. september 2008 Del 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 Lenke til kommentar
pgdx Skrevet 29. september 2008 Del 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 Lenke til kommentar
P@rm@nn Skrevet 29. september 2008 Del 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 Lenke til kommentar
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å