Problem1068--数链

1068: 数链

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 41  Solved: 16
[Status] [Submit] [Creator:]

Description

现在我们有这样一个数链问题如下:

1.输入一个正整数 n

2.输出 n

3.如果 n=1 则结束;

4.如果 n 是奇数则 n 变为 3n+1,否则 n 变为 n/2

5.转入第 2 步。

例如输入的正整数 n=22,应该会输出如下的数链:

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

我们推测:对于任意一个正整数,经过上述算法最终都会得到 1

对于给定的正整数 n,我们把得到的数链中数的个数称为 n 的链长,例如 22 的链长是 16

对于给定的任意一对正整数 a b,求出 a b 之间的最长链长,当然这 个最长的链长是由 a b 之间的一个正整数产生的,包括 a b

Input

输入共一行,两个用空格隔开的正整数 aba<b

Output

输入供一行,一个数,a b 之间的最长链长。

Sample Input Copy

1 10

Sample Output Copy

20

HINT

【样例说明】

9 的链长是 20

【数据范围】

对于 30%的数据: 1<i<j <1000

对于 100%的数据: 1<i<j <100000

Source/Category