zoukankan      html  css  js  c++  java
  • 卡拉兹(Callatz)猜想

    猜想简介

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

    这是浙大PAT的第一题,题意比较简单。
    算法如下:
    1.算法开始。
    2.如果n!=1,下一步。否则跳到第五步。
    3.如果n是偶数,n/=2,step++,回到第二步。否则进行下一步。
    4.如果n是奇数,n=(3n+1)/2,step++,回到第二步。
    5.输出step。
    6.算法结束。
    

    代码如下

        #include <iostream>
        using namespace std;
        int main()
        {
            int n,step=0;
            cin>>n;
            while(1){
                if(n==1)break;
                else{
                    if(n%2==0)
                    {
                        n/=2;
                        step++;
                    }
                    else 
                    {
                        n=(3*n+1)/2;
                        step++;
                    }
                }
            }
            cout<<step<<endl;
            return 0;
        }
    
  • 相关阅读:
    K8S-安全机制
    K8S-Service
    K8S-Pod资源管理
    K8S-kubelet启动过程
    每日进度
    每日进度
    每日进度
    每日进度
    每日进度
    归纳及计划
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832290.html
Copyright © 2011-2022 走看看