对于任何大于1的自然数n,如果n为奇数,n变为3n+1,如果为偶数,变为n/2,变化若干次,最后一定能得到1。请问变化了几次。n<=10^9.
int count=0;
int n;
cin>>n;
while(n!=1){
if(n%2==0){
n/=2;
}else{
n=3*n+1;
}
count++;
}
cout<<count<<endl;
如果定义int型的n,因为10^9的上界比int要稍微小一点,所以可能会溢出。将int改为long long问题解决。scanf里要做%d–>%lld的变化。