我想以劃分1000/3
為例并將答案設定為輸入。我的問題是我不希望他們這樣float
,所以我像這樣四舍五入
const answer = Math.round(1000/3);
當我將它們設定為 3 個輸入時,它們都是 333,它們的總和是 999,但我希望其中一個是 334,其他是 333 我一般如何處理?感謝您的幫助
uj5u.com熱心網友回復:
我希望其中一個是 334 和其他 333
只需添加一個1000
即可1001
:
let s1 = Math.round(1000/3); //333
let s2 = Math.round(1000/3); //333
let s3 = Math.round(1000/3); //333
console.log(s1 s2 s3); //999
let s4 = Math.round(1001/3); //334
console.log(s2 s3 s4); //1000
uj5u.com熱心網友回復:
這是一個通用函式,它將您的整數拆分k
為n
總和為的部分k
:
const arr = []
, splitInteger = (num, parts) => {
let sum = 0;
for (let i = 0; i < parts - 1; i ) {
const curr = Math.floor(num/parts)
arr.push(curr)
sum = curr
}
arr.push(num - sum)
}
// Splitting 1000 into 3 parts
splitInteger(1000, 3)
console.log(arr)
// Let's try 7 parts
arr.length = 0
splitInteger(1000, 7)
console.log(arr)
uj5u.com熱心網友回復:
我希望其中一個是 334 和其他 333 我一般如何處理?
一般到什么程度?我不確定是否有完美的答案。但是,根據您的示例,我將使用以下內容:
var input = 1000
var divisors = 3
var value = Math.round(input/divisors)
var display1 = value
var display2 = value
var display3 = input - value * (divisors-1)
console.log( display1, display2, display3 )
在某些情況下,您可能需要更加小心舍入,但對于 0-100 的整數范圍,這應該沒問題。
uj5u.com熱心網友回復:
通過制作通用功能,您可以實作您想要的。
function getRes(num, divide) {
let answer = Math.round(num / divide);
let res = num - answer * divide;
return [answer, res];
}
let num = 1000;
let divide = 7;
let [answer, res] = getRes(num, divide);
let finalAnswer = Array(divide).fill(answer);
finalAnswer[finalAnswer.length - 1] = answer res;
console.log(finalAnswer);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/463321.html
標籤:javascript 数学 划分
上一篇:反應狀態下的語音識別問題
下一篇:即使CNAME重定向www,也無法從源www.example.com訪問“在'https://example.com/webworker.js'上的腳本”。到主域