查看原题目请点我
题外话:这是入门题,我最近想把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)