• c语言中3n+1溢出问题解决


      3n+1问题是一个简单有趣而又没有解决的数学问题。这个问题是由L. Collatz在1937年提出的。克拉兹问题(Collatz problem)也被叫做hailstone问题、3n+1问题、Hasse算法问题、Kakutani算法问题、Thwaites猜想或者Ulam问题。

      问题如下:

      (1)输入一个正整数n;

      (2)如果n=1则结束;

      (3)如果n是奇数,则n变为3n+1,否则n变为n/2;

      (4)转入第(2)步。

      刘汝佳的书上就写着,但是输出987654321时候还是溢出拉。

      /*#include

      int main()

      {

      int n;

      int count=0;

      scanf("%d",&n);

      while(n>1)

      {

      if(n%2!=0)

      {

      n=3*n+1;

      }

      else

      n=n/2;

      count++;

      printf("%d ",n);

      }

      printf("%d ",count);

      }

      */

      然后我是一个小菜鸟,但是我今天弄了半天居然弄出来了,嘿嘿,这个是我的成果,不知道对不对,分享给大家,在我用的软件Code Blocks上运行成功了!987654321也能出来正确结果托福答案 www.jx-jf.com

      #include

      int main()

      {

      long long n;

      int count=0;

      scanf("%I64d",&n);

      while(n>1)

      {

      if(n%2!=0)

      n=(long long)3*n+1;

      else

      n=(long long)n/2;

      printf("%I64d ",n);

      count++;

      }

      printf("%d ",count);

      }

     

  • 相关阅读:
    代码外的软技能——吉他自学过程
    利用栈实现括号匹配(python语言)
    django框架--登录注册功能(ajax)
    ajax的get请求
    docker 制作自己的镜像
    Mysql group by之 Error 1055
    ssh 远程连接
    python实现--九九乘法表
    mysql5.7安装和卸载过程
    javascript随机变色--案例
  • 原文地址:https://www.cnblogs.com/haosola/p/3601950.html
Copyright © 2020-2023  润新知