FizzBuzz

昨晚閑得無聊在網上各技術站點上瞎晃悠,看到有一系列JS文章,每章後都有習題,然後想想閑著也是閑著,就拿來打發下無聊吧。其中有一道大名鼎鼎的「FizzBuzz」題目,就是:給你1——100的數字,如果能被3整除就將該數字改為Fizz,如果能被5整除就改為Buzz,如果既能被3又能被5整除就改為FizzBuzz。據說面試者有90%都會栽在這道題上面......&($@#^*^)$&#(*:-(

當時寫了個這樣的:

然後有小盆友說,你這個盡量用const。但我調試階段要在控制台修改、重定義函數時,當然const不方便呀......

然後又有小盆友說:「作為最好的語言PHP的碼農,為何不是Mac而是Windows筆記本?」其實我年輕時也是很羨慕Mac的,現在老了就越來越「邋遢隨意」了......[摳鼻中]

然後又有個小盆友說:「為什麼你用Opera瀏覽器?」觀察太仔細了呀(??;)......

然後又有個小盆友說:「這個VS Code的主題是啥?」——是「Monokai Phoenix」......

然後又有個小盆友說:「昨天參加一個敏捷開發的邀請課,然後用的題目就是這個,和我結對編程的小姐姐說,不用if語句,然後我就提出了用大三目嵌套,然後她說這樣不夠優雅,最後用多個三目和字元串優先輸出和拼接的方式,得到了結果,但還想看看有沒有更好的方式?」嘢,都跟小姐姐結對編程了,不過話說這個小姐姐也太挑剔了點兒?[繼續摳鼻中......]

我就順手繼續寫下去了......

const simpleRange = (start, len) => [...Array(len)].map((_, k) => start + k);const calculateFizzBuzz2 = (start, len) => { let result = simpleRange(start, len).map(v => { if (v % 3 === 0 && v % 5 === 0) { return FizzBuzz; } else if (v % 3 === 0) { return Fizz; } else if (v % 5 === 0) { return Buzz; } return v; }); console.log(result.join(, ).trim());};calculateFizzBuzz2(1, 100);const calculateFizzBuzz3 = (start, len) => { let result = simpleRange(start, len).map(v => ((v % 3 === 0 && v % 5 === 0) && FizzBuzz) || ((v % 3 === 0) && Fizz) || ((v % 5 === 0) && Buzz) || v ); console.log(result.join(, ).trim());};calculateFizzBuzz3(1, 100);

我覺得還是用if語句清晰。寫程序有兩種情況,一種是寫清晰點,一種是寫混亂點;就跟編程語言有兩種,一種是程序員主動想用的,一種是程序員被動去用的......

誰還有更好的/更有意思的寫法,拉出來秀一秀吧~

以下純屬發散叨叨......

吶~,我個人寫程序的初衷呢,最簡單地說就是「興趣方面的追求」。有時候看到一門語言的某種特性、某個解決方案,在戳中心裡共鳴處時,會油然生出一股喜悅之情。固然年輕時為了生計讓自己不斷強化對技術的投入,但多年以後,感覺到自己心中的程序世界已逐漸獨立開來,不止是關乎工作需要,還成了一種自自然然的習慣。

那天看郁達夫《春風沉醉的晚上》,最後寫到:

貧民窟里的人已經睡眠靜了。對面日新里的一排臨鄧脫路的洋樓里,還有幾家點著了紅綠的電燈,在那裡彈罷拉拉衣加。一聲二聲清脆的歌音,帶著哀調,從靜寂的深夜的冷空氣里傳到我的耳膜上來,這大約是俄國的飄泊的少女,在那裡賣錢的歌唱。天上罩滿了灰白的薄雲,同腐爛的屍體似的沉沉的蓋在那裡。雲層破處也能看得出一點兩點星來,但星的近處,黝黝看得出來的天色,好像有無限的哀愁蘊藏著的樣子。

從字裡行間得出的體會,自己感到了震撼。反過來能夠觸動自己的東西,自己又會更努力去體會。寫程序學編程於我而言亦有同感。我始終覺得程序員寫程序是為自己而寫,踏踏實實去寫,就算工作需要,也是一種為自己負責任的態度。而個人在程序員生涯里,追求的是不斷超越自己,追求的是那種進步的感覺,而非說這種語言是「垃圾」、那種技術「太low」,更不是某種語言得到了什麼大廠的加持就瞬間可以紅遍江湖然後感覺是all-in-one般的「救世技術」。當然PHP就是最好的語言......

郁達夫的文字渲染力發揮到十二成,這等刻木三分的效果,帶給我強烈的極客通感。生活不易,如果春華秋實、起起伏伏之後,自己心中還有極客般的美好,還有一、兩樣讓你感受到充實的事物,難道人不就該這樣嗎?說正經的,我從不喜歡成天坐著和悶著,更不喜歡那種鬍子拉碴的樣子。嗯哼,鬍子拉碴也要有一種僕僕風塵般的樣子啊......

純叨叨一下,這一段有一種不想寫程序的感覺反覆,給自己找找感覺......

推薦閱讀:

好書一起讀(151):抽象和分層
go語言 reflect: Call with too few input arguments?
你希望 Go 2 有哪些改善和新特性?
R語言第一戰之數據結構初體驗
小鳥的live——畫畫與編程

TAG:编程人生 | 编程 |