Ruby语言中有许多特殊的功能值得我们去深入的研究。比如那些不同于其他编程语言的语法等。在这里我们就会了解到一些Ruby特殊语法的相关概念。#t#
题目是找零钱,假设我们需要找给别人39美元元的零钱,
那么结果将会是(美元的硬币有25,10,5,1这种):
用Ruby特殊语法来解决,只需要两行即可,
- def make_change(amount,
coins = [])- coins.sort! { |x,y| y <=> x }
- return coins.map!{|coin|
- f = amount/coin; amount
%= coin;Array.new(f){coin}
}.flatten- end
- p make_change(39,[10,1,5,25])
这里采用贪心算法,每次总是用***的硬币去整除,然后将余下的钱用下一个硬币进行同样运算。
一句话Ruby特殊语法是我见到过最灵活敏捷的语言。