0

假设我必须有一个小计为 1836.36 的购物车。我必须通过从一个价格范围内的列表中添加几个产品来达到这个确切的数量。

比如说,我有一些产品,价格分别为 9.99、29.99、59.99,我可以分别添加几个以满足所需的小计。如何使用 Ruby 解决这个问题?

我曾想过将价格列表输入脚本并以某种方式添加脚本,直到它达到小计,然后吐出达到小计所需的价格......只是不知道如何处理它。

欢迎提出任何建议,并提前致谢。期待想法。

4

1 回答 1

1

9.99*x + 29.99*y + 59.99*z = 1836.36

蛮力遍历整数范围内 x,y,z 的所有排列

例如:

(0..9).each do |x|
  (0..9).each do |y|
    (0..9).each do |z|
       puts "x #{x} y #{y} z #{z}" if (x * 9.99 + y * 29.99 + z * 59.99 == 1836.36)
    end
  end
end

丢弃总和不是 1835.36 的任何答案。

类似的东西……没有测试过。您可能可以调整和优化它以忽略肯定无法通过的情况。

于 2011-09-23T22:33:35.763 回答