#3 Codewars - Money, Money, Money (7 kyu)

更新 發佈閱讀 2 分鐘

題目

原始題目

Scrooge先生有一筆他想投資的錢 “P”。在他這樣做之前,他想知道 “P” 這個總和,必須將其保存在銀行中多少年,以使其達到所需的 “D” 金額。

該金額在每年支付利息“I”的銀行中保留 “Y” 年。在當年繳納 “T” 稅後,新款項被重新投資。

稅收注意事項:不是對投資本金徵稅,而是僅對當年的應計利息徵稅

因此,Scrooge先生必須等待 3 年才能將初始本金等於所需的金額。

您的任務是完成提供的方法並返回整個 “Y” 年數,以便 Scrooge 先生獲得所需的金額。

假設:假設期望的 “D” 主語始終大於初始主語。但是,最好考慮到,如果期望的 “D”等於“P”,則應該返回 0 年。

拆解流程

依據題意可整理出以下重點:

  1. 每年投資得到的錢為本金 * (1 + 利率) - 稅收
  2. 需要注意稅收是只對「利息」徵稅,因此稅收 = 本金 * (1 + 利率) - 本金 * 稅率
  3. 需要計算 N 年後,本金金額會大於期望金額:可使用 while 迴圈,如果本金小於期望金額,就繼續進行計算,大於就停止執行。

程式撰寫

function calculateYears(principal, interest, tax, desired) {
if (principal >= desired) {
//記得寫 return!!!
return 0;
}
let year = 0;
while (principal < desired) {
year++;
let taxMoney = principal * interest * tax;
principal = principal * (1 + interest) - taxMoney;
}
return year;
}

錯誤紀錄

中間犯了蠻多很瞎的錯誤...... 一開始寫完之後,發現實際測試都沒有通過,結果發現:

  1. if 判斷式忘記寫 return,沒有中斷函式執行
  2. while 迴圈裡面的條件式寫成 principal >= desired,難怪迴圈都不執行,因為一開始就是 false 了
  3. 利率的算法是 1 + 利率,否則本金會一直變少,不會變多

改善寫法

算法上可以更為精簡,像是這段是筆者寫的:

while (principal < desired) {
let taxMoney = principal * interest * tax;
principal = principal * (1 + interest) - taxMoney;
}

可以改寫如下:

while (principal < desired) {
principal += principal * interest * (1 - tax);
}


今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論哦~


留言
avatar-img
傑米的沙龍
8會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
傑米的沙龍的其他內容
2023/10/06
要改變表單元素的樣式其實相當麻煩,有些樣式還不能更改,這篇就來探討如何把它們改成喜歡的模樣吧。
Thumbnail
2023/10/06
要改變表單元素的樣式其實相當麻煩,有些樣式還不能更改,這篇就來探討如何把它們改成喜歡的模樣吧。
Thumbnail
2023/10/05
一個超簡單就能達到滾動視差的套件 - AOS
Thumbnail
2023/10/05
一個超簡單就能達到滾動視差的套件 - AOS
Thumbnail
2023/10/04
切版有許多眉角需要注意,來探討那些經常導致切版結果與設計稿產生落差的原因。 一、文字的高度本體是 line-height:🔍 文字所佔據的高度不是由font-size決定,而是line-hight。一開始練習切版時,都想著設定好字的尺寸和字重就 ok 了吧?殊不知這是造成切出來的網頁與設計
Thumbnail
2023/10/04
切版有許多眉角需要注意,來探討那些經常導致切版結果與設計稿產生落差的原因。 一、文字的高度本體是 line-height:🔍 文字所佔據的高度不是由font-size決定,而是line-hight。一開始練習切版時,都想著設定好字的尺寸和字重就 ok 了吧?殊不知這是造成切出來的網頁與設計
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
何謂年化報酬率呢? 年化報酬率其實就是以年為單位的複利回算,這段期間的總報酬,相當於如同每年定存固定利率,並將利息再投入之後的複利報酬。 譬如一筆100萬的投資,10年後變成130萬,總報酬率就是30%,每年平均報酬率是3%,然而換算成年化報酬率即為2.66%。 年化報酬率只代表某段
Thumbnail
何謂年化報酬率呢? 年化報酬率其實就是以年為單位的複利回算,這段期間的總報酬,相當於如同每年定存固定利率,並將利息再投入之後的複利報酬。 譬如一筆100萬的投資,10年後變成130萬,總報酬率就是30%,每年平均報酬率是3%,然而換算成年化報酬率即為2.66%。 年化報酬率只代表某段
Thumbnail
選項1: 每個月都還款 選項2: 在年末的時候一次性還款 請思考 5 分鐘,再看答案 一分鐘... 兩分鐘... 三分鐘... 四分鐘... 五分鐘... 答案是,你應該還款截止日的時候再還款,利息最佳! ​​| Initial | Interest |
Thumbnail
選項1: 每個月都還款 選項2: 在年末的時候一次性還款 請思考 5 分鐘,再看答案 一分鐘... 兩分鐘... 三分鐘... 四分鐘... 五分鐘... 答案是,你應該還款截止日的時候再還款,利息最佳! ​​| Initial | Interest |
Thumbnail
題目:Scrooge先生有一筆他想投資的錢 “P”。在他這樣做之前,他想知道 “P” 這個總和,必須將其保存在銀行中多少年,以使其達到所需的 “D” 金額。該金額在每年支付利息“I”的銀行中保留 “Y” 年。在當年繳納 “T” 稅後,新款項被重新投資。稅收注意事項:不是對投資本
Thumbnail
題目:Scrooge先生有一筆他想投資的錢 “P”。在他這樣做之前,他想知道 “P” 這個總和,必須將其保存在銀行中多少年,以使其達到所需的 “D” 金額。該金額在每年支付利息“I”的銀行中保留 “Y” 年。在當年繳納 “T” 稅後,新款項被重新投資。稅收注意事項:不是對投資本
Thumbnail
財務目標 考慮幾個小孩?買房?幾歲退休? 規劃長期、中期、短期目標
Thumbnail
財務目標 考慮幾個小孩?買房?幾歲退休? 規劃長期、中期、短期目標
Thumbnail
這是一個中年人對於時光一去不復返的感嘆詞。人不到中年可能體會不深,對於那種過了中年卻沒有好好把握時間的人,感觸特深! 因為那些曾經可以用來創造價值的時間,無法再來,而且未來也只會越來越少。
Thumbnail
這是一個中年人對於時光一去不復返的感嘆詞。人不到中年可能體會不深,對於那種過了中年卻沒有好好把握時間的人,感觸特深! 因為那些曾經可以用來創造價值的時間,無法再來,而且未來也只會越來越少。
Thumbnail
複利:把賺到的錢繼續投入 複利強調的是投資時間拉長,到後期,複利效果會越來越強大 72法則 72除以投資報酬率(1~20之間)算出來的答案就是資金翻倍所需的年數 EX: 投資報酬率8趴 那麼資產要翻倍的時間是9年 投資報酬率18趴 那麼資產要翻倍的時間是4年 =======
Thumbnail
複利:把賺到的錢繼續投入 複利強調的是投資時間拉長,到後期,複利效果會越來越強大 72法則 72除以投資報酬率(1~20之間)算出來的答案就是資金翻倍所需的年數 EX: 投資報酬率8趴 那麼資產要翻倍的時間是9年 投資報酬率18趴 那麼資產要翻倍的時間是4年 =======
Thumbnail
將100萬元存入銀行,設月利率2%,按年複利計算,則5年後本利和共有多少錢? 這是國二數學考題 要先注意題目寫的是按年複利計算非按月複利
Thumbnail
將100萬元存入銀行,設月利率2%,按年複利計算,則5年後本利和共有多少錢? 這是國二數學考題 要先注意題目寫的是按年複利計算非按月複利
Thumbnail
在坊間的理財教學中,複利的概念不斷地促使人們盡早投資。告訴著人們:只要早點投入資產,就可以使資產指數成長。影片中不假設風險,只看報酬率的說法儘管不全面,仍然呈現了複利的威力。如同影片中的試算,時間是非常重要的一項因素。然而實際的資產累積,不同於上述試算。
Thumbnail
在坊間的理財教學中,複利的概念不斷地促使人們盡早投資。告訴著人們:只要早點投入資產,就可以使資產指數成長。影片中不假設風險,只看報酬率的說法儘管不全面,仍然呈現了複利的威力。如同影片中的試算,時間是非常重要的一項因素。然而實際的資產累積,不同於上述試算。
Thumbnail
近期因股票市場開始熱絡起來,許多人紛紛加入開始投資。在投資的領域中,我們最常聽到投資報酬率。投資報酬率這個名詞充滿了陷阱嗎?儲蓄險的議題有勝過銀行定存的利息?是真的嗎?這篇文章就告訴你事實吧!
Thumbnail
近期因股票市場開始熱絡起來,許多人紛紛加入開始投資。在投資的領域中,我們最常聽到投資報酬率。投資報酬率這個名詞充滿了陷阱嗎?儲蓄險的議題有勝過銀行定存的利息?是真的嗎?這篇文章就告訴你事實吧!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News