0
0
已采纳
0
int n,k;
int main()
{
cin>>n;
while(n!=1)
{
if(n%2==1){k++;n=(n*3+1)/2;}
if(n%2==0){k++;n=n/2;}
}
cout<<k<<endl;
return 0;
}
0
0
0
其实很简单啊,和千变万化总是“1”稍微有点像
while(n!=1)
{
if(n%2==0) n/=2;
else n=(n*3+1)/2;
count++;
}
核心代码,具体思路参考千变万化总是“1”微课讲解
0
#include<iostream> using namespace std; int n,cnt=0; int main(){ cin>>n; while(n!=1){ cnt++; if(n%2==0){ n/=2; }else n=(n*3+1)/2; } cout<<cnt<<endl; return 0; }
0