Re:Fizz Buzz codegolf challenge in 15 languages
by glomph on Friday December 14, 2012 @01:01PM
(#4922224)
Some simple ways to cut down on characters:
[ Parent
| on HN ]
Re:Fizz Buzz codegolf challenge in 15 languages
by jaegerpicker on Friday December 14, 2012 @01:12PM
(#4922277)
for i in range(1,101): print "FizzBuzz" if not i % 15 else "Fizz" if not i % 3 else "Buzz" if not i % 5 else str(i)
Even a little shorter :)
Re:Fizz Buzz codegolf challenge in 15 languages
by adambard on Friday December 14, 2012 @01:34PM
(#4922394)
And a bit shorter still :D. Down to 102 chars now.
for i in range(1,101):print "Fizz" if not i%3 else '' + "Buzz" if not i%5 else str(i) if (i%3) else ''
Edit: Down to 82 characters now. I'm not sure if this would work on every Python, but it works on mine. for i in range(1,101):print(("Fizz"if i%3==0 else'')+("Buzz"if i%5==0 else''))or i
Re:Fizz Buzz codegolf challenge in 15 languages
by c4p on Friday December 14, 2012 @02:56PM
(#4922939)
You can drop the extra () which brings it down to 80.
for i in range(1,101):print("Fizz"if i%3==0 else'')+("Buzz"if i%5==0 else'')or i
Re:Fizz Buzz codegolf challenge in 15 languages
by GregBuchholz on Friday December 14, 2012 @05:00PM
(#4923596)
74
for i in range(1,101):print(''if i%3 else'Fizz')+(''if i%5 else'Buzz')or i
Re:Fizz Buzz codegolf challenge in 15 languages
by y2bd on Friday December 14, 2012 @05:43PM
(#4923771)
70 now, still same idea.
for x in range(1,101):print['','Fizz'][x%3==0]+['','Buzz'][x%5==0]or x
Re:Fizz Buzz codegolf challenge in 15 languages
by GregBuchholz on Friday December 14, 2012 @05:55PM
(#4923818)
Excellent. Down to 68.
for x in range(1,101):print['','Fizz'][x%3<1]+['','Buzz'][x%5<1]or x
Re:Fizz Buzz codegolf challenge in 15 languages
by twiceaday on Sunday December 16, 2012 @10:43PM
(#4930723)
My shortest Python solution is 59 characters. Two tricks, use while instead of range, and use string repetition instead of lists
n=1
while n<101:print'Fizz'*(n%3<1)+'Buzz'*(n%5<1)or n;n+=1
And here is a wacky one in 96 chars w=range(101)
w[::3]=['Fizz']*34
w[::5]=['Buzz']*21
w[::15]=['FizzBuzz']*7
for s in w[1:]:print s
Re:Fizz Buzz codegolf challenge in 15 languages
by ajennings on Tuesday December 18, 2012 @01:04PM
(#4938651)
You can save one more character with an exec loop
n=1;exec"print'Fizz'*(n%3<1)+'Buzz'*(n%5<1)or n;n+=1;"*100
Re:Fizz Buzz codegolf challenge in 15 languages
by jaegerpicker on Friday December 14, 2012 @02:23PM
(#4922733)
Nice, The 82 character one works for me also, on Mac OS X python 2.7.3