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)!+n!。设计求解该问题的C语言程序,阶乘的计算使用递归函数实现