3*n+1问题

Posted tyranrex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3*n+1问题相关的知识,希望对你有一定的参考价值。

  

#include <iostream>
using namespace std;

// 3n+1 问题
// 猜想:对于任意大于 1 的自然数 n,若 n 为奇数,则将n变为3*n+1;否则将n变为n的一半,计算运算过程次数
void judge(int n)
{
  int count = 0;
  while (n != 1) {
    count++; // 计次输出
    if (n < 0)
      printf("值为负数,不能判别!!! ");
    else {
      if (n % 2 == 1)
        n = 3 * n + 1;
      else
        n = n / 2;
    }
  }
  printf("运行次数是:%d ", count);
}

int main()
{
  int n;
  cin >> n;
  judge(n);
  return 1;
}

以上是关于3*n+1问题的主要内容,如果未能解决你的问题,请参考以下文章

根号1+根号2+根号3+……+根号n=?

计算1!+2!+3!...+(n-1)!+n!。设计求解该问题的C语言程序,阶乘的计算使用递归函数实现

递归法----整数划分问题

如何求解:f(n) = f(n-1) + 3*f(n-2) + 3*f(n-3) + f(n-4)

跳台阶问题

整数划分问题(递归)