Denne tråd er over 6 måneder gammel
Er du sikker på, at du har noget relevant at tilføje?
Fizz Buzz - kode leg.Af Nørd inckie | 23-06-2010 23:49 | 2276 visninger | 39 svar, hop til seneste
Jeg har en sjov lille leg som nogle af jer koder måske kender.
Legen hedder Fizz Buzz og er faktisk meget simpel.
Legen går ud på, at du skal tælle til 100
Hver gang at tallet går op i 3 skriver du Fizz
Går det op i 5 skriver du Buzz
går det op i 3 eller 5 skriver du Fizz Buzz
Lav så et program et dit yndlings sprog, det gælder om at løse dette problem mest effektivt, jo færre if/else conditions jo bedre
Jeg fortrækker at man paster sin kode til http://pastebin.com[...] også linker til den her fra og bruger syntax highlighting.
Lad nu være med at gå ud på nettet og google jer frem til en løsningen og paste den, bare for at være med. Åben din yndlings editor og gå i gang med, at skriv en løsning.
Jeg poster min løsning i java, når der er kommet et par forslag her. Så kan vi sammenligne og få en lille leg ud af det.
SÆT I GANG! --
Naturen er en nedtur, fuck regnskoven! Den fylder for meget #OA
Hvis man dog bare kunne finde ud af at kode.. :D -- #1
alt hvad du skal bruge, for at lave løsningen i php står næsten her: http://phpartikler.dk[...] under Begynder introduktion også vil jeg give dig et gratis tip "modulus" (som er derfor jeg skriver næsten, fordi det står der vidst ikke noget om der) men ellers kan du finde alt der.
Du kunne jo være en god måde at komme igang med programmering på -- Naturen er en nedtur, fuck regnskoven! Den fylder for meget #OA Det er ikke smukt, men her er mit forsøg i Java: http://pastebin.com[...] -- Reality is the original Rorschach.
"bump" = lukket tråd #4 prøv at se om du kan fjerne din første if, hvor du tjekker for 15, du har jo allerede tjekket 3 og 5 en gang, hvorfor gøre det igen :P? -- Naturen er en nedtur, fuck regnskoven! Den fylder for meget #OA #7 Nu jeg ikke lige C mand, men som jeg læser det, kan det kode ikke ouput FizzBuzz ? -- Moder jord er en kæmpe sædsluger #7: Du skal lige lave din "else if" om til en "if" (Fizz buzz ved eksempelvis tallet 30) :) -- http://www.jkg.dk[...] #6
Elegant.
Ville der være noget at spare ved slet ikke at bruge en string?
http://pastebin.com[...]
Koden er stadig rimelig forståelig. -- Reality is the original Rorschach.
"bump" = lukket tråd Nu er vi vist dernede, hvor vi skal til at diskutere om conditional operators er "mindre kode" end elseif og switch udtryk. Mon ikke det er nok at sige at modulus er vejen frem.
Det kunne være rigtig spændende at se nogle bud på korte løsninger i assembler. -- http://www.jkg.dk[...] #8 & 9 > Jeg vidste det faktisk godt, men kaffen skulle også brygges, jeg ventede sådan set bare på i fandt den :D
her er en hurtig lappeløsning :D må hellere tilbage til arbejdet: http://pastebin.com[...] -- Det er da også helt forkert, nå ja - kigger på det senere -- Nu gik det jo ud på at bruge færrest mulige if sætninger.
http://pastebin.com[...]
Bruger jo faktisk kun de if-sætninger, som der er i for-løkken. Det forslag som #6 og #10 kommer med, benytter jo faktisk en if sætning, hvergang ? tegnet bruges ;) -- [L]http://www.goood.dk[...]
Intel Core 2 Duo E6300, Asus P5L-MX, 2*512 G.Skill DDR2-667, Creative Audigy 2, Asus GeForce 7600GS Silencer, SilverStone kabinet. okay jeg fatter ikke en brik af hvad det går ud på men kan man ikke se koden i aktion?:) -- http://www.youtube.com[...]
Chuck norris jokes FTW! #15
Der er ikke meget at se. Det er console programmer, så du vil bare se en række tal og så står fizz, buzz eller fizz buzz bagefter, hvis de går op i 3, 5 eller 3 og 5. -- Reality is the original Rorschach.
"bump" = lukket tråd Her er mit bud i java, uden if sætninger, overhovedet.
http://pastebin.com[...]
Man kan nok gøre det sammen i C og C++, lad os se noget prolog og haskell :) -- Gæstebruger, opret dit eget login og få din egen signatur. #17 Man kan jo faktsik gøre din kode endnu mere kompakt
http://pastebin.com[...]
Oh snap! -- [L]http://www.goood.dk[...]
Intel Core 2 Duo E6300, Asus P5L-MX, 2*512 G.Skill DDR2-667, Creative Audigy 2, Asus GeForce 7600GS Silencer, SilverStone kabinet. Ser ud til alle er rimelig godt med, nogle lov level sprog kunne være sygt at se.
Evt. kunne vi sige at det forbudt at bruge modulus
så vi nok ude i noget med at flytte bit mod højre for at dividere i stedet.
#15
Programmet skal output noget i stil med:
Hvordan og hvor er sådan set lige meget.
1
2
3 Fizz
4
5 Buzz
6 Fizz
7
8
9 Fizz
10 Buzz
11
12 Fizz
13
14
15 Fizz Buzz
16
17
18 Fizz
19
20 Buzz
21 Fizz
22
23
24 Fizz
25 Buzz
26
27 Fizz
28
29
30 Fizz Buzz
31
32
33 Fizz
34
35 Buzz
36 Fizz
37
38
39 Fizz
40 Buzz
41
42 Fizz
43
44
45 Fizz Buzz
46
47
48 Fizz
49
50 Buzz
51 Fizz
52
53
54 Fizz
55 Buzz
56
57 Fizz
58
59
60 Fizz Buzz
61
62
63 Fizz
64
65 Buzz
66 Fizz
67
68
69 Fizz
70 Buzz
71
72 Fizz
73
74
75 Fizz Buzz
76
77
78 Fizz
79
80 Buzz
81 Fizz
82
83
84 Fizz
85 Buzz
86
87 Fizz
88
89
90 Fizz Buzz
91
92
93 Fizz
94
95 Buzz
96 Fizz
97
98
99 Fizz
100 Buzz -- Moder jord er en kæmpe sædsluger #10
Man sparer vel noget processor tid på, at den ikke hele tiden skal opdatere hukommelsen med den nye værdi i output. -- Moder jord er en kæmpe sædsluger #19 det er da for nemt, hvis man altid må skrive tallet. Man må kun outputte et tal hvis tallet ikke give Fizz, Buzz eller FizzBuzz.
Altså hvis det skal være mere low level end C, skal det kun være for at minimere antallet at statements og ikke antallet af if sætninger, da de jo allerede er minimeret. -- [L]http://www.goood.dk[...]
Intel Core 2 Duo E6300, Asus P5L-MX, 2*512 G.Skill DDR2-667, Creative Audigy 2, Asus GeForce 7600GS Silencer, SilverStone kabinet. #19 modulus er som regel en instruktion, så det giver ikke meget mening at erstatte den med noget bit manipulering. Man kan jo også bare lave modulus ved at sige:
int modulus(int a, int b) {
return a - (a/b)*b;
}
-- [L]http://www.goood.dk[...]
Intel Core 2 Duo E6300, Asus P5L-MX, 2*512 G.Skill DDR2-667, Creative Audigy 2, Asus GeForce 7600GS Silencer, SilverStone kabinet. #22
Jeg tror faktisk også at det skal fungere ligesom bum-leg, som man legede i matematiktimerne i folkeskolen.
I så fald kunne jeg umiddelbart rette koden fra tidligere til dette:
http://pastebin.com[...]
Der kommer dog en conditional mere på. -- Reality is the original Rorschach.
"bump" = lukket tråd #24
Koden der blev forslået i #17 og #18 gør allerede dette, men uden brug af nogle form for conditions - andet end det der bruges af for løkken. -- [L]http://www.goood.dk[...]
Intel Core 2 Duo E6300, Asus P5L-MX, 2*512 G.Skill DDR2-667, Creative Audigy 2, Asus GeForce 7600GS Silencer, SilverStone kabinet. yes, jeg læste den godt, men dette var bare et quick and dirty fix til den anden kode, så outputtet fulgte den anden formulering af opgaven. -- Reality is the original Rorschach.
"bump" = lukket tråd Nu ved jeg ikke lige om der er nogen der er kommet med et bud i C++ endnu, men jeg smider da lige et hurtigt lille bud. Ved ikke om det kan gøres mere optimalt (det kan det formentlig). Kommenter endelig.
http://pastebin.com[...] -- Bopæl: 2300 Amager
MSN: [email protected] .
Mail: [email protected] .
-- E6600, X1800XT, 750GB, 2GB DDR2 ram, 600W -- #7 Tror at din løsning er ukorrekt. Såvidt jeg lige kan lure så vil den aldrig skrive FizzBuzz, fordi du bruger else if.. Så hvis den går op i 3 vil det ikke blive tjekket om den også går op i 5.. -- Bopæl: 2300 Amager
MSN: [email protected] .
Mail: [email protected] .
-- E6600, X1800XT, 750GB, 2GB DDR2 ram, 600W -- #28 Luk arret og læs hele tråden inden du poster..
#29 Ok. Det gør jeg lige næste gang, så jeg ikke retter på en gut der allerede er blevet rettet på, og tilsyneladende har foretaget de nødvendige ændringer.
#28 Godt at høre..
#29 np.. Skulle det være en anden gang. -- Bopæl: 2300 Amager
MSN: [email protected] .
Mail: [email protected] .
-- E6600, X1800XT, 750GB, 2GB DDR2 ram, 600W -- #30 Det var bare mit forsøg på at gøre opmærksom på at jeg rettede på #7 selvom der allerede var nogle andre der havde påpeget samme fejl som jeg påpegede. -- Bopæl: 2300 Amager
MSN: [email protected] .
Mail: [email protected] .
-- E6600, X1800XT, 750GB, 2GB DDR2 ram, 600W -- Hver gang at tallet går op i 3 skriver du Fizz
Går det op i 5 skriver du Buzz
går det op i 3 eller 5 skriver du Fizz Buzz
Du mener selvfølgelig "og" her ikke?
Bare lige til de små sko :) -- "Remember, amateurs built the Ark. Professionals built the Titanic." - Richard J. Sexton #32 jo 3 OG 5 :P -- Moder jord er en kæmpe sædsluger #32 Det tog jeg i hvert fald for givet. Det andet ville ikke rigtig give mening. -- Bopæl: 2300 Amager
MSN: [email protected] .
Mail: [email protected] .
-- E6600, X1800XT, 750GB, 2GB DDR2 ram, 600W -- #34 regnede jeg også med de fleste fattede, men jeg er notorisk pedanisk :p -- "Remember, amateurs built the Ark. Professionals built the Titanic." - Richard J. Sexton Here is my solution without for-loop, module, and if-statements http://pastebin.com[...] -- Gæstebruger, opret dit eget login og få din egen signatur. #36 Flot, du skal da vidst ansættes hos det offentlige og lave deres it-systemer. -- Gæstebruger, opret dit eget login og få din egen signatur. #37 der er da intet galt med #36's bud. En ordenlig compiler ville, hvis den kunne gennemskue det, lave samme loop unfolding. -- [L]http://www.goood.dk[...]
Intel Core 2 Duo E6300, Asus P5L-MX, 2*512 G.Skill DDR2-667, Creative Audigy 2, Asus GeForce 7600GS Silencer, SilverStone kabinet. #38 Tror ikke at der er nogen der betvivler at løsningen er korrekt. Tror nærmere at der er tale om at det ikke er en holdbar måde at programmere på. -- Bopæl: 2300 Amager
MSN: [email protected] .
Mail: [email protected] .
-- E6600, X1800XT, 750GB, 2GB DDR2 ram, 600W --
Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.
Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.
Opret bruger | Login
|
Du skal være logget ind for at tilmelde dig nyhedsbrev.
Hvilken udbyder har du til internet? 254 personer har stemt - Mit energiselskab (Ewii f.eks) 12%
|