The Algorithms logo
The Algorithms
Acerca deDonar

Binary Count Trailing Zeroes

def binary_count_trailing_zeroes(x)
  raise 'Input must be a positive integer' if x < 0

  binary = x.to_s(2)

  count = 0
  binary.chars.reverse_each do |char|
    break if char == '1'

    count += 1
  end

  count
end

begin
  binary_count_trailing_zeroes(-1)
rescue StandardError => e
  puts e.message
end
# Input must be a positive integer

puts binary_count_trailing_zeroes(0)
# 1

puts binary_count_trailing_zeroes(1023)
# 0

puts binary_count_trailing_zeroes(1024)
# 10

puts binary_count_trailing_zeroes(54)
# 1

puts binary_count_trailing_zeroes(121_024)
# 6