问题标题: 酷町堂:3944

0
0
已解决
郑泓毅
郑泓毅
资深守护
资深守护
#include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a;
    if(a%2==1)
    a=a*3+1;
    for(b=0;a!=1;b++)
    a=a/2;
    if(a%2==1)
    cout<<b+1;
    else
    cout<<b;
}

0
已采纳
李泽远
李泽远
高级天翼
高级天翼

把循环放在判断外面。

最好用while循环,执行循环的条件是这个数不等于0。

里边在判断,运算。

当它是1的时候输出。

不是AC跟我说,我会回答你的。

望采纳,谢谢。

0
0
陈曦
陈曦
资深天翼
资深天翼
 
int n,i=0;
    cin>>n;
    while(n!=1){
        i++;
        if(n%2==0){
            n=n/2;
        }
        else
        {
            n=n*3+1;    
        }
    }
    cout<<i;

 

0
0
我要回答