Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Trailing Zeros drill
- function bin(x::Integer)::String
- if x < 0; return string(-parse(Int64, bin(-x))); end
- if x == 0; return "0"; end
- L = log(2, x)
- n = ceil(Int64, L)
- if L == n; n += 1; end
- Y = Array{Int8}(undef, n)
- for i = n:-1:1
- x_ = div(x, 2)
- Y[i] = x - 2x_
- x = x_
- end
- return join(Y)
- end
- function main1(x::Integer)::Int64
- b = bin(x)
- c = 0
- for i = length(b):-1:1
- b[i] == '0' ? c += 1 : break
- end
- return c
- end
- function main2(x::Integer)::Int64
- c = 0
- d = 1
- for i = 1:floor(Int64, log(2,x))
- d *= 2
- x % d == 0 ? c += 1 : break
- end
- return c
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement