查看原题目请点我
题外话:这是入门题,我最近想把PAT乙级的题目都用python实现一遍,但是发现还是挺吃力的,python还没学好,暂时只更新简单的题吧。估计也没什么人会看到,方便以后自己查阅吧。代码有什么问题欢迎大家找我交流。

C/C++版

#include<cstdio>
int main(){
    int n;
    scanf("%d",&n);
    int cnt=0;
    while(n!=1){
        if(n&1)  n=(3*n+1)/2;
        else     n=n/2;
        cnt++;
    }
    printf("%d",cnt);
    return 0;
}

Python版

n = int(input())
cnt = 0
while n != 1:
    if(n&1):  #位运算,如果是奇数结果就为1,偶数就为0
        n=(3*n+1)//2 #这里两个斜杠表示整除
        cnt+=1
    else:
        n=n//2
        cnt+=1
print(cnt)