Ruby で作った!

そんな、67 とか、訳の分からないロジックを解析しても、仕方ないだろ。無視すべしw

def func( num )
return -1 if num == 0
# 2進数の文字列にして、逆転して、左から探す
num.to_s( 2 ).reverse.index( "1" )
end

nums = %w(0 5 10 4 8).map!( &:to_i ) # 数値の配列
p nums.map { |num| func( num ) }

#=> [-1, 0, 1, 2, 3]