简单的变换
题号:NC207716
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你一个正整数n,重复进行以下操作:
1.如果n是奇数,令
2.如果n是偶数,令
重复上述直至n=0停止,请输出进行操作的次数,如果n永远无法变成零,输出-1

示例1

输入

复制
2

返回值

复制
-1

说明

1:2->1(2/2=1)
2:1->-2(1-3=-2)
3:-2->-1((-2)/2=(-1))
4.-1->-4(-1-3=-4)
5.-4->-2((-4)/2=(-2))
6.-2->-1((-2)/2=(-1))
.......开始进入第三步操作到第五步操作的循环,n永远无法等于0,所以返回-1。
示例2

输入

复制
9

返回值

复制
3

说明

1.9->6(9-3=6)
2.6->3(6/2=3)
3.3->0(3-3=0)
三步操作后n变为0,所以返回3。

备注:

对于的数据,
对于的数据,
请返回最少操作数或者-1