星期六, 3月 10, 2007

你今天FizzBuzz了嗎?

FizzBuzz的問題由來已久, 基本上"應該"很簡單,
而且你"應該"不需要知道這問題還有個名字叫FizzBuzz:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

不過這篇由tickletux發表的個人牢騷像野火一般燒遍了國外的programmer blog,讓FizzBuzz聲名大噪了一番,
那篇講的主要其實也只是在抱怨他找的Programmer人選連解決像FizzBuzz的簡單問題都沒辦法,
不過這抱怨也激盪了出不少網路上最不缺的戰火話題跟創意,
以至於目前不少blog將FizzBuzz議題發表視為一種時尚.
(比如本blog接下來要做的事 :P)

基於傳教士的天性, 及追隨時尚盲從潮流的一種特殊快感,
篤信寫Python得永生的我也不得不特地趕上風潮:


def fizzbuzz(n,x):
"""tim like buzz, you like tim, so you get my dear john letter"""
if n == 100: return x + "Buzz"
elif not n % 15 : x += "FizzBuzz"
elif not n % 5 : x += "Buzz"
elif not n % 3 : x += "Fizz"
else: x += str(n)
return fizzbuzz(n+1,x)

print fizzbuzz(1,"")


嗯嗯 我的版本有沒有一種"為賦新詞強遞迴"的感覺? XD

還沒有嗎? 那是因為我寫的爛的緣故, 那後面這篇

"Ruby interpreting Prolog' interpreting Lisp interpreting Lisp solving FizzBuzz"

你就不得不"欣賞欣賞"了 :P

好好一個FizzBuzz又被他老兄離題到這種程度...

這又再度證明了一件我長久以來悟出比"FizzBuzz實驗"更加有說服力的結論:

"Programmer永遠能在極端無用的事物上才華洋溢"

(只是隨口說說啦... 如果有對結論已經認真起來的同學請仔細閱讀本blog右下角特別聲明 XD
好了好了 我啥都沒說 沒事多喝水多喝水.....orz)

沒有留言: