码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • PAT乙级 1001 害死人不偿命的(3n+1)猜想


    文章目录

    • 题目描述
      • 输入格式
      • 输出格式
      • 输入样例
      • 输出样例
    • 题目解析
      • 思路
      • 位运算
    • C/C++代码

    题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805325918486528

    题目描述

    卡拉兹(Callatz)猜想:

    对任何一个正整数 n n n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 ( 3 n + 1 ) (3n+1) (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n = 1 n=1 n=1。卡拉兹在 1950 1950 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 ( 3 n + 1 ) (3n+1) (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……

    我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 1000 1000 的正整数 n n n,简单地数一下,需要多少步(砍几下)才能得到 n = 1 n=1 n=1 ?

    输入格式

    每个测试输入包含 1 1 1 个测试用例,即给出正整数 n n n 的值。

    输出格式

    输出从 n n n 计算到 1 1 1 需要的步数。

    输入样例

    3
    
    • 1

    输出样例

    5
    
    • 1

    题目解析

    思路

    本题属于简单模拟题。

    根据题意,在 while 循环中分别对奇数和偶数进行不同的操作,同时记录循环的次数。while 循环退出时,输出循环次数即可。

    位运算

    位运算的好处是速度极快,其运行效率比除法、取余高很多。

    判断 n n n 是奇数:n % 2 == 1 或 n & 1 == 1

    判断 n n n 是偶数:n % 2 == 0 或 n & 1 == 0

    n n n 乘以 2 2 2 :n = n * 2 或 n = n << 1

    n n n 除以 2 2 2 :n = n / 2 或 n = n >> 1

    C/C++代码

    #include 
    
    using namespace std;
    
    int main()
    {
        int n;
        cin >> n;
        
        int cnt = 0;
        while (n != 1)
        {
            if (n & 1) n = (3 * n + 1) >> 1;
            else n = n >> 1;
            cnt++;
        }
        
        cout << cnt << endl;
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    Flutter笔记: 在Flutter应用中使用SQLite数据库
    .NetCore手写一个 API 限流组件
    vsCode 格式化配置
    RabbitMQ初步到精通-第七章-RabbitMQ之延迟队列
    通过nginx代理:在本地浏览器访问远程服务器某目录里面的指定文件内容(如html),及修改配置后重启nginx方法
    SAP 电商云 Spartacus UI SiteContextUrlParams 的实现明细介绍
    bm9 bm10
    【华为OD机试python】数字涂色【2023 B卷|100分】
    通过数据可观测性进行价值工程和数据成本优化
    vue 报Cannot read properties of undefined (reading ‘clientHeight‘)
  • 原文地址:https://blog.csdn.net/qq_42815188/article/details/100927036
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号