码迷,mamicode.com
首页 > 其他好文 > 详细

3*n+1问题

时间:2020-01-07 16:14:36      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:turn   using   奇数   ++   pac   运行   ret   oid   lse   

  

#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("值为负数,不能判别!!!\n");
    else {
      if (n % 2 == 1)
        n = 3 * n + 1;
      else
        n = n / 2;
    }
  }
  printf("运行次数是:%d\n", count);
}

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

3*n+1问题

标签:turn   using   奇数   ++   pac   运行   ret   oid   lse   

原文地址:https://www.cnblogs.com/TyranRex/p/12161886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!