问题标题: 酷町堂:3958 数字黑洞

0
0
已解决
宣雨楠
宣雨楠
高级守护
高级守护

题目描述 Description

对一个正整数 ,不断进行如下操作:当它小于10时,将它乘以比它大1的数得到一个新的数;当它大于等于10时,如果它是偶数,将它除以2得到一个新的数,如果它是奇数,将它加1后再除以2得到一个新的数。最终这个数会变成6或7。
现给出一个正整数n(1<=n<=10000),编程求解n经过几次变换会变成6或7。

输入描述 Input Description

一个正整数n。

输出描述 Output Description

一个正整数,表示变换次数。

样例输入 Sample Input

17

样例输出 Sample Output

6

数据范围及提示 Data Size & Hint

17大于10且是奇数,(17+1)/2=9,
9小于10,9*10=90,
90大于10且是偶数,90/2=45,
(45+1)/2=23,
(23+1)/2=12,
12/2=6。


0
已采纳
孙楷航
孙楷航
资深光能
资深光能

死循环{

计数;

如果n<10 n*=n+1;

否则 如果 (i%2) n=n+1;

否则 n/=2;

如果是6或7{

cout<<cnt;

退出;

}

}

我要回答