Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
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
#1
MathiasJ
Super Nørd
23-06-2010 23:57

Rapporter til Admin
Hvis man dog bare kunne finde ud af at kode.. :D
--
#2
inckie
Nørd
24-06-2010 00:03

Rapporter til Admin
#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
#3
Lowkey
HOL Moderator
24-06-2010 00:21

Rapporter til Admin
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
JohnDoe89
Gigabruger
24-06-2010 02:12

Rapporter til Admin
#5
inckie
Nørd
24-06-2010 08:39

Rapporter til Admin
#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
#6
inckie
Nørd
24-06-2010 12:41

Rapporter til Admin
Her er min løsning: http://pastebin.com[...]
--
Moder jord er en kæmpe sædsluger
#7
JohnDoe
Gæst
24-06-2010 12:50

Rapporter til Admin
#5 > Du siger noget : http://pastebin.com[...]
--
Gæstebruger, opret dit eget login og få din egen signatur.
#8
inckie
Nørd
24-06-2010 12:51

Rapporter til Admin
#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
#9
jkgeyti
Super Supporter
24-06-2010 12:59

Rapporter til Admin
#7: Du skal lige lave din "else if" om til en "if" (Fizz buzz ved eksempelvis tallet 30) :)
--
http://www.jkg.dk[...]
#10
Lowkey
HOL Moderator
24-06-2010 13:20

Rapporter til Admin
#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
#11
jkgeyti
Super Supporter
24-06-2010 13:46

Rapporter til Admin
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[...]
#12
JohnDoe89
Gigabruger
24-06-2010 13:56

Rapporter til Admin
#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[...]
--
#13
JohnDoe89
Gigabruger
24-06-2010 13:58

Rapporter til Admin
Det er da også helt forkert, nå ja - kigger på det senere
--
#14
GOOOD
Nørd Aspirant
24-06-2010 13:59

Rapporter til Admin
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.
#15
M.Trier
Maxi Supporter
24-06-2010 14:01

Rapporter til Admin
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!
#16
Lowkey
HOL Moderator
24-06-2010 14:16

Rapporter til Admin
#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
#17
jesper
Gæst
24-06-2010 14:53

Rapporter til Admin
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.
#18
GOOOD
Nørd Aspirant
24-06-2010 15:00

Rapporter til Admin
#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.
#19
inckie
Nørd
24-06-2010 15:19

Rapporter til Admin
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
#20
inckie
Nørd
24-06-2010 15:31

Rapporter til Admin
#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
#21
Biominator
Semi Supporter
24-06-2010 15:31

Rapporter til Admin
http://pastebin.com[...]
--
He who angers you, conquers you
#22
GOOOD
Nørd Aspirant
24-06-2010 15:51

Rapporter til Admin
#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.
#23
GOOOD
Nørd Aspirant
24-06-2010 16:06

Rapporter til Admin
#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.
#24
Lowkey
HOL Moderator
24-06-2010 16:12

Rapporter til Admin
#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
#25
GOOOD
Nørd Aspirant
24-06-2010 16:16

Rapporter til Admin
#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.
#26
Lowkey
HOL Moderator
24-06-2010 16:20

Rapporter til Admin
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
#27
Zniper69
Junior Nørd
25-06-2010 11:41

Rapporter til Admin
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 --
#28
Zniper69
Junior Nørd
25-06-2010 11:44

Rapporter til Admin
#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 --
#29
Zniper69
Junior Nørd
25-06-2010 11:50

Rapporter til Admin
#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
M.Trier
Maxi Supporter
25-06-2010 11:55

Rapporter til Admin
28/29# WTF?
--
http://www.youtube.com[...] Chuck norris jokes FTW!
#31
Zniper69
Junior Nørd
25-06-2010 11:59

Rapporter til Admin
#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 --
#32
Eidolon
Giga Supporter
25-06-2010 12:02

Rapporter til Admin
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
#33
inckie
Nørd
25-06-2010 12:41

Rapporter til Admin
#32 jo 3 OG 5 :P
--
Moder jord er en kæmpe sædsluger
#34
Zniper69
Junior Nørd
25-06-2010 12:52

Rapporter til Admin
#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 --
#35
Eidolon
Giga Supporter
25-06-2010 13:00

Rapporter til Admin
#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
#36
Mr. print
Gæst
25-06-2010 23:48

Rapporter til Admin
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.
#37
Gæsten
Gæst
25-06-2010 23:50

Rapporter til Admin
#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.
#38
GOOOD
Nørd Aspirant
26-06-2010 00:15

Rapporter til Admin
#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.
#39
Zniper69
Junior Nørd
27-06-2010 22:08

Rapporter til Admin
#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 --

Opret svar til indlægget: Fizz Buzz - kode leg.

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
NYHEDSBREV
Afstemning