zoukankan      html  css  js  c++  java
  • 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);

      }

     

  • 相关阅读:
    如何建一个SAM
    3.Telegraf自定义脚本模块
    2.Influxdb函数
    1.自动化运维监控
    7.mysql8.0版本MGR搭建
    6.mysql存储过程
    5.innodb B+tree索引
    4.mysql profile的使用方法
    3.mysql小表驱动大表的4种表连接算法
    2.mysql explain命令详解
  • 原文地址:https://www.cnblogs.com/haosola/p/3601950.html
Copyright © 2011-2022 走看看