Ruby 一家银行有无限量供应的3比索和5比索纸币任务?
我正在做一项类似这样的任务: 银行有无限量的3比索和5比索纸币。表明使用这两种类型的票据,银行可以支付任何超过7比索的金额 答案是: 银行可以通过支付一张3比索纸币和一张5比索纸币来支付8比索 银行可以通过支付三张3比索的钞票来支付9比索 银行可以通过支付两张5比索的钞票来支付10比索 银行可以通过支付3比索票据支付11比索或更多比索,直到只剩下8、9或10比索需要支付,然后使用上述策略之一。如果从11或更大的数字中减去3,最终将得到8、9或10中的一个 我正试图在一个Ruby程序中实现这个功能 到目前为止,我已经完成了以下工作:Ruby 一家银行有无限量供应的3比索和5比索纸币任务?,ruby,math,Ruby,Math,我正在做一项类似这样的任务: 银行有无限量的3比索和5比索纸币。表明使用这两种类型的票据,银行可以支付任何超过7比索的金额 答案是: 银行可以通过支付一张3比索纸币和一张5比索纸币来支付8比索 银行可以通过支付三张3比索的钞票来支付9比索 银行可以通过支付两张5比索的钞票来支付10比索 银行可以通过支付3比索票据支付11比索或更多比索,直到只剩下8、9或10比索需要支付,然后使用上述策略之一。如果从11或更大的数字中减去3,最终将得到8、9或10中的一个 我正试图在一个Ruby程序中实现这个功能
class Money
def initialize(price)
@price = price.to_i
validate(@price)
end
def validate(price)
if price >= 8
calculate(price)
elsif price < 8
puts "Minimum ammount is 8 pesos"
end
end
def calculate(price)
if price%5 === 0
fives = price/5
threes = 0
end
result(fives, threes)
end
def result(fives, threes)
puts "#{fives} five peso notes, #{threes} three peso notes."
end
end
m = Money.new(ARGV.first)
你能帮我把这道数学题写进程序吗?谢谢。你基本上已经明白了,尽管我打赌三重相等===应该是一个双重==想想r=price%3。余数r有三个可能的值:0、1或2。零意味着你已经知道了一个解决方案。您只需要想出一种方法来编写处理1和2的代码。
def count(price)
t = 0
if price >= 11
t = (price - 8) / 3
price -= t * 3
end
if price == 8
[t + 1, 1]
elsif price == 9
[t + 3, 0]
elsif price == 10
[t, 2]
else
fail "price too small"
end
end
threes, fives = count(42)
puts "#{fives} five peso notes, #{threes} three peso notes."