Codewars 是個程式練習網站,筆者主要練習的是 JavaScript,會記錄自己的解法,並參考其他人的寫法來改善自己的程式碼,那麼我們就開始吧!
路邊有柱子。 柱子之間的距離相同,柱子的寬度也相同。
您的函數接受三個參數:
1. 柱子數量 (≥ 1);
2. 柱子之間的距離(10 - 30公尺);
3. 柱子的寬度(10 - 50 公分)。
計算第一個和最後一個柱子之間的距離(以公分為單位)(不包括第一個和最後一個柱子的寬度)。
依據題意可整理出以下重點:
空隙數量 * 單一空隙距離
。需要留意空隙數量的計算是兩根柱子之間只有一個空隙,三根柱子之間就會有兩個空隙...... 以此類推,可知所有柱子若有 x 根,空隙數量應為 x-1function pillars(numPill, dist, width) {
if (numPill > 1) {
return (numPill - 1) * dist * 100 + (numPill - 2) * width;
} else {
return 0;
}
}
後來參考其他人寫法,主要發現有以下可以改善的地方:
並改寫如下:
雖然程式碼較長,但閱讀上較為直覺
function pillars(numPill, dist, width) {
if (numPill === 1) {
return 0;
} else {
let pillsDist = dist * 100 * (numPill - 1);
let pillsWidth = width * (numPill - 2);
return pillsDist + pillsWidth;
}
}
function pillars(numPill, dist, width) {
return numPill === 1 ? 0 : (numPill - 1) * dist * 100 + (numPill - 2) * width;
}
今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論哦~