Ruby特殊语法概念解析

Ruby语言中有许多特殊的功能值得我们去深入的研究。比如那些不同于其他编程语言的语法等。在这里我们就会了解到一些Ruby特殊语法的相关概念。#t#

题目是找零钱,假设我们需要找给别人39美元元的零钱,
那么结果将会是(美元的硬币有25,10,5,1这种):

用Ruby特殊语法来解决,只需要两行即可,

 

 
 
 
  1. def make_change(amount, 
    coins = [])  
  2. coins.sort! { |x,y| y <=> x }  
  3. return coins.map!{|coin| 
  4. f = amount/coin; amount
     %= coin;Array.new(f){coin} 
    }.flatten  
  5. end  
  6. p make_change(39,[10,1,5,25]) 

这里采用贪心算法,每次总是用***的硬币去整除,然后将余下的钱用下一个硬币进行同样运算。

一句话Ruby特殊语法是我见到过最灵活敏捷的语言。

THE END