#include <iostream>
using namespace std;
// 角谷猜想(Collatz Conjecture)函数
void collatzConjecture(int n) {
int steps = 0;
cout << "Starting number: " << n << endl;
while (n != 1) {
cout << n << " ";
if (n % 2 == 0) {
n = n / 2; // 如果 n 是偶数,除以 2
} else {
n = 3 * n + 1; // 如果 n 是奇数,乘以 3 加 1
}
steps++;
}
cout << n << endl;
cout << "Steps taken: " << steps << endl;
}
int main() {
int number;
cout << "Enter a positive integer: ";
cin >> number;
if (number <= 0) {
cout << "Please enter a positive integer." << endl;
return 1;
}
collatzConjecture(number);
return 0;
}
角谷猜想(Collatz Conjecture):
n
,如果 n
是偶数,则将其除以 2;如果 n
是奇数,则将其乘以 3 再加 1。重复这个过程,最终 n
总会变为 1。代码结构:
collatzConjecture(int n)
函数实现了角谷猜想的逻辑。n
作为输入,并打印出每一步的结果。while
循环来不断更新 n
的值,直到 n
变为 1。main()
函数负责从用户那里获取输入,并调用 collatzConjecture
函数进行处理。输入验证:
main()
中,程序会检查用户输入的是否是正整数。如果不是,程序会提示用户重新输入。输出:
希望这段代码和解释对你有帮助!
上一篇:c++泛型编程
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站