1001. 害死人不偿命的(3n+1)猜想 (15)

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


全部评论

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在午休:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
06-19 12:33
安徽大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务