回答
如果我理解正確的,你需要的東西:
(1..365).reduce(0) { |memo, i| memo + i }
#⇒ 66795
,或者在很短的形式(學分@約爾格W.米塔格):
(1..365).reduce(:+)
這裏我們使用的Range
標準reduce
程序。首先我們構造範圍,包含從1到365的整數。然後我們遍歷這些整數,攜帶總數(根據ruby約定命名爲memo
)。
我認爲這看起來是正確的,本質上它必須計算如下,當一個項目出售和以後,所以:1美元出售,然後1美元+ 2美元出售= 3美元,然後3美元+3美元= 6美元,6美元+4美元= 10美元,10美元+ $ 5 = $ 15,然後$ 15 + $ 11 = $ 26等等,直到$ 365。你是否在意解釋你的答案的工作原理,我對Ruby有點新鮮感,這會非常有幫助。謝謝!我會接受你的回答。 – Apane101 2015-02-08 17:51:19
乾杯@mudasobwa,我想具體是,減少(0)做什麼?從我收集的內容來看,你已經設置了1..365的範圍,備忘錄是1遞增/添加,而我是365?它是否增加到365?請澄清。它必須增加銷售的物品+新的價格,一直高達365美元。謝謝! – Apane101 2015-02-08 17:56:59
有沒有必要分配給'備忘錄'。這是局部變量,反正它會超出範圍。 – 2015-02-08 17:59:09
從數學上講,你正在尋找n = 1到y的總和。 According to WolframAlpha,這個總和可以減少到y(y + 1)/ 2。因此,您可以將其計算爲:
x = 365*(365+1)/2 #=> 66795
不需要任何循環。這種代碼方式更高效; O(1)而不是O(n)。
你們都是對的,所以+1! – Apane101 2015-02-08 18:03:51
我不確定你需要引用一個我們都在代數I(或之前)中學過的公式的參考文獻,如果忘記的話可以很容易地推導出這個公式。 :-) – 2015-02-08 20:17:58
- 1. 如何在紅寶石中增加1?
- 2. 紅寶石添加/總和變量
- 3. 如何添加(預/後)_install_hook紅寶石
- 4. 添加現時紅寶石
- 5. 在紅寶石中添加塊
- 6. 如何添加一個產品變型與紅寶石寶石
- 7. 廚師:如何在紅寶石塊中增加Mixlib :: ShellOut的CommandTimout?
- 8. 導致零和紅寶石增量
- 9. 紅寶石增量數組,0..40,[10,20,30,40]
- 10. 紅寶石 - 增加負浮動值
- 11. 紅寶石 - 「獲取」增加換行符
- 12. 遞增快報紅寶石
- 13. 薩翁紅寶石寶石增加ins0到標籤
- 14. 在rails上添加紅寶石查詢
- 15. 紅寶石在rails上 - 添加javascript
- 16. 如何顯示該數字已增加在紅寶石
- 17. 紅寶石:常量
- 18. Python /紅寶石:cronjob將不會加載紅寶石寶石?
- 19. 在索引中的變量添加返回無紅寶石
- 20. 無法在軌道上添加紅寶石Quandl寶石
- 21. 如何紅寶石
- 22. 如何紅寶石
- 23. 如何紅寶石
- 24. 如何紅寶石
- 25. 如何紅寶石
- 26. 如何紅寶石
- 27. 如何紅寶石
- 28. 如何紅寶石
- 29. 如何紅寶石
- 30. 如何紅寶石
請定義「增量增加」的含義。你的意思是你想要1到365之間的整數總和,包括? – 2015-02-08 20:13:24
是的,遞增。 – Apane101 2015-02-09 01:46:19