0
我想解決歐拉項目問題1.我已經注意到一個序列導致更快的解決方案,每15號。項目歐拉1太慢與三角數字
這是15 n中的Clojure代碼
(defn fifteenator [n]
(* 15 (+ (* (+ 1 n) 3) (* (/ (+ (* n n) n) 2) 7))))
是0 30,n爲1等。
所以我可以計算出可以被15整除的最接近的數字,只做幾次遞歸計算。但仍然有一個HackerRank測試用例超時。在我開始分析代碼之前,我想確定我的推理是否正確。有更快的方法來計算它,還是應該學會剖析Clojure?
你有沒有使用[應用]考慮(https://clojuredocs.org/clojure。 core/apply)和[filter](https://clojuredocs.org/clojure.core/filter)呢? – shash678
您可以通過在['time'](https://clojuredocs.org/clojure.core/time)中打包語句來計算評估時間,該語句將標準輸出花費的時間打印出來。 –
一些提示:1.「i」的倍數序列是「(範圍i n i)」,但不包括「n」。 2.你可以使用'(reduce + ...)'或'(apply + ...)'來對一個序列求和。 3.如果你將3的倍數和5的倍數相加,你會將15的倍數計算兩次。使用[算術級數]代數的更快解決方案(https://en.wikipedia.org/wiki/Arithmetic_progression#Sum) – Thumbnail