COINS = [100,25,1] total = COINS.inject(0) {|s, v| s + v * gets.to_i } holder = {} COINS.inject(total % 1000){|s,v| holder[v] = s / v s % v } puts holder.values.inject(0,&:+)