我目前在Javascript中有一个列表:
设x= 1.0,2.5,5.0,20.0,50.0,100.0,500.0,2000.0,5000.0,其中每个价值是一美元硬币。
我的问题是,我需要一些方程,让Javascript选择最小数量的硬币,以达到期望的最大值。
我举一个例子:
我需要尽可能少的硬币才能达到5.5美元的最高价格。我会用一个2.5美元的硬币和3个1.0美元的硬币到达5.5美元。
限制:所获得的值不能超过所需的值。
我会用什么数学函数来解决这个问题?或者有人知道这类方程式的技术名称,让我查一下?从来没有过这样的事。
发布于 2022-05-06 02:03:59
你必须写逻辑,没有任何内置的函数可以这样轻易地通过精简完成!
let a = [1.0, 2.5, 5.0, 20.0, 50.0, 100.0, 500.0, 2000.0, 5000.0];
let query = 80.0;
while (query > 0) {
//find closest maximum number
const output = a.filter(t => t <= query).reduce((prev, curr) => Math.abs(curr - query) < Math.abs(prev - query) ? curr : prev);
query = query - output;
console.log(output);
}
https://stackoverflow.com/questions/72135336
复制相似问题