0
已解决
李玥仑
中级光能
中级光能
3944 数字漩涡
经验值:800
题目描述 Description
对一个正整数,不断进行如下操作:如果它是奇数,就对它乘3再加1,如果是偶数,就除以2。最终这个整数会变成1。就像是数字落入了漩涡,最终都会被卷入漩涡中心。
现给出一个正整数n(2<=n<=1000),编程求解n要经过几次变换会变成1。
输入描述 Input Description
一个正整数n。
输出描述 Output Description
一个正整数,表示变换次数。
样例输入 Sample Input
5
样例输出 Sample Output
5
数据范围及提示 Data Size & Hint
5是奇数,乘3加1得到16,16是偶数,除以2得到8,8是偶数……
变换过程:5—>16—>8—>4—>2—>1,变换次数为5次。
献上我的死循环代码
#include<iostream>
using namespace std;
int main(){
int n,cnt=0;
cin>>n;
while(1){
cnt++;
if(n%2==0){
n/=2;
}
if(n%2==1){
n*=3;
n--;
}
if(n==1){
break;
}
}
cout<<cnt;
return 0;
}