c++代码用最简单的方法所谓角谷猜想是指对于任意一个正整数如果是奇数则乘 33 加 11如果是偶数则除以 22得到的结果再按照上述规则重复处理最终总能够得到 11。如假定初始整数为 55计算过程分别为 1616、88、44、22、11。程序要求输入一个整数将经过处理得到1的过程输出来。输入格式一个正整数 NNN≤2×106N≤2×10 6 输出格式从输入整数到 11 的步骤每一步为一行每一步中描述
以下是一个用C++实现的解决方案:
#include <iostream>
void collatzConjecture(int n) {
while (n != 1) {
std::cout << n;
if (n % 2 == 0) {
n /= 2;
std::cout << "/2=" << n << std::endl;
} else {
n = n * 3 + 1;
std::cout << "*3+1=" << n << std::endl;
}
}
std::cout << "End" << std::endl;
}
int main() {
int n;
std::cin >> n;
collatzConjecture(n);
return 0;
}
这个程序中,我们定义了一个函数collatzConjecture来实现角谷猜想的计算过程。在函数中,我们使用了一个循环来进行计算,直到输入的整数变为1为止。在每一步中,我们根据输入的整数是奇数还是偶数来进行不同的操作,并输出计算过程。最后,我们输出"End"表示计算结束。
在main函数中,我们首先读取输入的整数,然后调用collatzConjecture函数来进行计算。
注意:这个程序假设输入的整数是正整数,并且不会超过2×10^6。如果需要对输入进行验证,可以添加相应的代码
原文地址: http://www.cveoy.top/t/topic/inH3 著作权归作者所有。请勿转载和采集!