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("值为负数,不能判别!!!\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;
}
在本博客上的内容全部共享公开不收费
转载请注明出处,尊重知识,尊重劳动
对代码或者知识有疑问,可联系博主(qq):2218787597(或邮件投递)