挑戰 Codewar - 1
這是在胡立的程式導師實驗計畫第四期中的 Codewar 練習題,裡面的題目都是出自 Codewars,之後會試著去由淺入深解開裡面的題目,並在這個系列寫出我解題的過程與心得。
Opposite number
第一題先從難度零顆星的開始。目的是要將數值正反顛倒,正數變負數,負數變正數。
一進去就給你一個 function,讓你去思考怎麼解。
1 | function opposite(number) { |
一開始有點想太多,想說如果是負數的話,就給它一個負號,讓它變正數;如果是正數,就給負號。
所以一開始的作法我是用 if...else
:
1 | function opposite(number) { |
後來想想不對,應該是不用這麼複雜,不管什麼數,給負數就對了,所以就變成:
1 | function opposite(number) { |
Even or Odd
這一題是要做出判斷給的數值是奇數或是偶數。
想了一下,應該是要用判斷 if...else
去做,只要判斷出偶數(或是奇數),另一個就會得到結果,所以會是這樣:
1 | if number % 2 === 0 |
用 JavaScript 來操作:
1 | function even_or_odd(number) { |
Number-Star ladder
這題從零顆星開始變成一顆星頭目了,感覺有點難,範例是如果給數值 4,會依序回傳:
1 | 1 |
一開始題目就幫你設定好為:
1 | function pattern(n){ |
這個問題卡了我一天都解不出來,只知道是組字串的作法,最後只好去看提示,後來才知道 JavaScript 有換行的語法,然後照我自己的方法做。
補充一下,在 JavaScript 中如果想要做出換行的效果,可以使用 ‘\n’ 這個語法
所以作法大概是:
1 | 如果是 1,就直接印 1 |
而在 JavaScript 中的作法為:
1 | function pattern(n){ |
然後還有看到一種作法也滿好的,在 starKey 部份是改用 Array().join()
的方式,
於是就學了起來,就可以改成:
1 | function pattern (n) { |
這次解題過程還算蠻有趣的,雖然第 3 題有點難度,想到後面還有更難的題目就覺得可怕…
但是解完題目後,所得到的成就感也很讓人著迷,會想要再接再厲繼續解下去,希望能透過完成這個系列精進寫程式的想法。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Bucky's Code Journey!