2012-05-27 58 views

回答

7

這裏有一種方法:

[1] pry(main)> [0,0,1,0].join.to_i(2) 
    => 2 
    [2] pry(main)> [0,1,0,1].join.to_i(2) 
    => 5 
    [3] pry(main)> 
0

這裏有一個稍微複雜的片段(相對於瑞安的)。

a1 = [0,0,1,0] 
a2 = [0,1,0,1] 

def convert a 
    a.reverse.each.with_index.reduce(0) do |memo, (val, idx)| 
    memo |= val << idx 
    end 
end 

convert a1 # => 2 
convert a2 # => 5