3 ms·
the shortest I could do is 72 characters in PHP. I have no idea how they can do 56. <? while(++$i<101)echo $i%15?$i%5?$i%3?$i:'Fizz':'Buzz':'FizzBuzz',"\n"
by rorrr 15y ago
the shortest I could do is 72 characters in PHP. I have no idea how they can do 56.
<? while(++$i<101)echo $i%15?$i%5?$i%3?$i:'Fizz':'Buzz':'FizzBuzz',"\n";
- par 15y agoI only worked on it for a few minutes and got 114 chars in Python for i in range(1,101): if i%15==0:print'FizzBuzz' elif i%3==0:print'Fizz' elif i%5==0:print'Buzz' else:print i Now I am on the hunt to figure out how to do it in 56, there goes my afternoon.
- jontsai 15y agoHeh, shortest I could do in Python after several hours was 62 for x in range(1,101):print'Fizz'*(x%3==0)+'Buzz'*(x%5==0)or x Off by 6 bytes!
- jontsai 15y agoDon't think you can do $i%15, still need to do that check separately. I like how you can leave out the closing ?>. you can also save 2 spaces by getting rid of whitespace between statements and symbols . The comments on the RapLeaf blog post I linked to in this thread has a guy trying out different Ruby solutions. Very clever!
- rorrr 15y agoThat code produces correct output. It passed. PHP does not require a closing ?>
- jontsai 15y agoOhhh. I was thinking about it wrong. Probably obvious to others, but I forgot about the property that if you have primes p and q, any number n (evenly) divisible by p that is also divisible by q must be divisible by the product of p*q. That shortcut is a result of hyper-optimization and I was thinking more along the lines of code-reusability (e.g. if the rules of FizzBuzz were changed from %3 and %5 to %x and %y) =P