yuin #664(2007/07/12 14:20 GMT) [ Scala ] Rating0/0=0.00
Scalaで。うーん、微妙・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14
import scala.collection.mutable.HashMap import scala.collection.Map.Projection def pay(money:Int, wallet:Map[Int, Int]):Projection[Int,Int] = { var m = money val r = new HashMap[Int,Int] m = wallet.keys./:(0){(r,k) => r+k*wallet(k)} - m if(m<0) throw new RuntimeException("Money!") List(500, 100, 50, 10, 5, 1).foreach(c => { r(c) = wallet.getOrElse(c, 0) - m/c m = m%c }) r.filterKeys(k => r(k)>0) } pay(147, Map(1 -> 2, 5 -> 300, 10 -> 4, 100 -> 3)).foreach(p => print(p._1+":"+p._2+","))
Rating0/0=0.00-0+
[ reply ]
yuin
#664()
[
Scala
]
Rating0/0=0.00
import scala.collection.mutable.HashMap import scala.collection.Map.Projection def pay(money:Int, wallet:Map[Int, Int]):Projection[Int,Int] = { var m = money val r = new HashMap[Int,Int] m = wallet.keys./:(0){(r,k) => r+k*wallet(k)} - m if(m<0) throw new RuntimeException("Money!") List(500, 100, 50, 10, 5, 1).foreach(c => { r(c) = wallet.getOrElse(c, 0) - m/c m = m%c }) r.filterKeys(k => r(k)>0) } pay(147, Map(1 -> 2, 5 -> 300, 10 -> 4, 100 -> 3)).foreach(p => print(p._1+":"+p._2+","))Rating0/0=0.00-0+
[ reply ]