19/02/16 17:33:21.11 PfkkbXxw.net
>>230 Ruby
def bs(ary)
ary.tap do |a|
(a.size**2).times do
(a.size - 1).times do |i|
a[i + 1], a[i] = a[i, 2] if a[i] > a[i + 1]
end
end
end
end
p bs([3, 1, 4, 15, 92]) # => [1, 3, 4, 15, 92]
>>232
sgn = -> n {n <=> 0}
r4 = -> n {n.floor}
r3 = -> n {-r4[-n]}
r2 = -> n {sgn[n] * r3[n.abs]}
r1 = -> n {sgn[n] * r4[n.abs]}
[0.5, -1.1, 3].each{|i| puts 'x = %p => %p %p %p %p' % [i, r1[i], r2[i], r3[i], r4[i]]}
# =>
x = 0.5 => 0 1 1 0
x = -1.1 => -1 -2 -1 -2
x = 3 => 3 3 3 3