iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
0
自我挑戰組

各種筆記系列 第 29

[Kata] Clojure - Day 29

  • 分享至 

  • xImage
  •  

Growth of a Population

In a small town the population is p0 = 1000 at the beginning of a year. The population regularly increases by 2 percent per year and moreover 50 new inhabitants per year come to live in the town. How many years does the town need to see its population greater or equal to p = 1200 inhabitants?

需要多少年 p0 才能超過 p, 每年人口成長率為 percent, 每年移入人口數為 aug

Example

At the end of the first year there will be: 
1000 + 1000 * 0.02 + 50 => 1070 inhabitants

At the end of the 2nd year there will be: 
1070 + 1070 * 0.02 + 50 => 1141 inhabitants (number of inhabitants is an integer)

At the end of the 3rd year there will be:
1141 + 1141 * 0.02 + 50 => 1213

It will need 3 entire years.

Solution

(ns arge.core)
        
(defn nb-year [p0 percent aug p]
  (let [percent (inc (/ percent 100))]
        (count (take-while #(< % p) (iterate #(long (+ aug (* % percent))) p0)))))

上一篇
[Kata] Clojure - Day 28
下一篇
[Kata] Clojure - Day 30
系列文
各種筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言