在JavaScript中, 鑑於分數(x)的數量是這樣的:求和和舍入分數乘以數目相等的數字?
0.3
0.3
0.2
0.1
0.1
(那筆1)
我怎樣才能確保當我通過一個數(n)乘以這些,說1000,並將結果舍入爲整數,這些整數的和將等於(n)?
在JavaScript中, 鑑於分數(x)的數量是這樣的:求和和舍入分數乘以數目相等的數字?
0.3
0.3
0.2
0.1
0.1
(那筆1)
我怎樣才能確保當我通過一個數(n)乘以這些,說1000,並將結果舍入爲整數,這些整數的和將等於(n)?
第1步:乘以n
號碼(在這種情況下,我們使用的n
不立即制定出這麼好,以證明LRM仍然有效;我選擇737),並將整體和小數部分分開。
0.3 * 737 = 221 + 0.1
0.3 * 737 = 221 + 0.1
0.2 * 737 = 147 + 0.4
0.1 * 737 = 73 + 0.7
0.1 * 737 = 73 + 0.7
步驟2:總結整數部分
221 + 221 + 147 + 73 + 73 = 735
步驟3:添加:排序從最高到最低
High to low: 0.7, 0.7, 0.4, 0.1, 0.1
步驟4的餘1
以與關聯的整個數字組件直到總和等於n
。
在我們的案例中,我們距目標總數爲2(737
),而0.7
是最大的餘數,發生了兩次。 0.7
與0.1
相關聯,所以請將1加到0.1
的整數。
你的最終名單是:
221
221
147
74
74
如果你乘,圓,和,你不能保證它。你爲什麼不先總結,然後乘以,然後呢?
偉大的答案,謝謝1)鏈接到實際的方法,這樣我記得任期及給予解決方案逐步2)。 – dani
很高興幫助:) –