##求0到x位置我们可以反过来思考如何从x位置到0.
##注意全部代码下输入输出都要以int整数进行处理即可。
x = int(input())
step = 0
if x < 0:##翻转负数
x = abs(x)
if x <= 3:##x《=3时可直接穷举得到
step = x
else:##x》3时可以通过一直除2进行迭代
while x > 3:
if x%2 == 1:##如果被除数不能被2整除则需要进行前进或后退
if (x//2)%2 == 1:##判断被除数被2除后的数字能否再被2整除以判断该步是前进还是后退
x+=1
step+=1
else:
x-=1
step+=1
x//=2
step+=1
else:##如果能被2整除就直接除就行
x //= 2
step += 1
step+=int(x)##除到3以下时再进行第一步的穷举即可
print(step)

京公网安备 11010502036488号