zoukankan      html  css  js  c++  java
  • CCF NOI1030 角谷猜想

    问题链接CCF NOI1030 角谷猜想




    时间限制: 1000 ms  空间限制: 262144 KB

    题目描述

      角谷猜想又称冰雹猜想。它首先流传于美国,不久传到欧洲,后来由一位叫角谷的日本人带到亚洲。因为被称为角谷猜想。
      通俗地讲,角谷猜想的内容是这样的:任意给定一个自然数n,当n是偶数时,将它除以2,即将它变成n/2;当n是 奇数时,就将它变成3n+1,……,若干步后,总会得到1。
      在上述演变过程中,将每一次出现的数字排列起来,就会出现一个数字序列。
      我们现在要解决的问题是:对于给定的n,求出数字序列中第一次出现1的位置。

    输入

      输入一个自然数n。

    输出

      输出序列中第一次出现1的位置。

    样例输入

    6

    样例输出

    9

    数据范围限制

      1<=n<2^31



    问题分析

      这是一个著名的问题,计算过程并不复杂,按照题意计算即可。

    程序说明

      数有可能越算越大,所以使用了long long类型。

    要点详解
    • 开始时n为1,那就是第1个,初值设置为1。
    • 整数计算有可能溢出。



    100分通过的C语言程序:

    #include <stdio.h>
    
    int main(void)
    {
        long long n;
        int pos;
    
        scanf("%lld", &n);
    
        pos = 1;
        while(n != 1) {
            pos++;
    
            if(n % 2 == 0)
                n /= 2;
            else
                n = 3 * n + 1;
        }
    
        printf("%d", pos);
    
        return 0;
    }



  • 相关阅读:
    开发servlet三种方式
    puppet 启动失败
    linux 内核 中链表list
    software level
    ubuntu 使用 root “sudo /bin/bash”
    linux 内存管理
    linux kernel "current" macro
    hello.hs haskell
    ubuntu samba
    微信小程序中使用 npm包管理 (保姆式教程)
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563914.html
Copyright © 2011-2022 走看看