練習如何解題
在上一篇的 Think first, code later 中,有提到如何一步一步地解開印出 1-100 的偶數,這一篇則是來看看如何解一些題目,像是印出 1-100 的奇數、fizz buzz 跟找出最小值。
印出 1-100 的奇數
首先先想出步驟:
1 | 設定 i = 1 |
大概設定步驟後,就可以寫出 pseudo code:
1 | let i = 1 |
寫到這邊就大概知道可以使用 for 迴圈去跑了,所以可以寫成:
1 | for (let i = 1; i < 100; i++ ) { |
Fizz buzz
記得這題在 leetcode 有看過,那時候還不是很懂如何思考(雖然現在也沒有很強就是了),不過現在可以來試試看如何解出這一題,首先先了解一下規則。
Fizz buzz 的規則是,數字從 1-n,如果碰到 3 的倍數,就印出 Fizz;如果碰到 5 的倍數,就印出 Buzz;如果碰到 3 跟 5 的倍數,就印出 Fizz Buzz。
知道規則後,就可以想想怎麼做:
1 | 設定 i = 1 |
到這邊就可以用 function 包一個 for 迴圈寫出來,看數字要多少再帶入就可以:
1 | function fizzBuzz (num) { |
找最小值
找最小值的方法可以從情境去帶入比較好思考。
例如目前有一副牌,從第一張開始設定為最小的牌,再來每一次的翻牌跟目前最小的牌做比較,直到全部翻完就可以知道最小的牌是哪一張。
所以 pseudo code 大概是這樣:
1 | let min = [0]; |
接著就可以用 JavaScript 寫出 code:
1 | let num = [11, 10, 8, 3, 2, 6]; // 目前的牌組 |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Bucky's Code Journey!