c++角谷猜想用while循环
时间: 2025-06-10 10:14:06 浏览: 9
### C++ 实现角谷猜想的 `while` 循环代码示例
以下是基于角谷猜想(也称为 3n+1 猜想)的一个完整的 C++ 示例程序,其中使用了 `while` 循环来模拟计算过程。此程序允许用户输入一个正整数,并按照角谷猜想的规则逐步处理该数字,直到最终结果为 1。
```cpp
#include <iostream>
using namespace std;
// 定义角谷猜想函数
void collatzConjecture(int n) {
cout << "起始值: " << n << endl;
// 使用 while 循环进行角谷猜想计算
while (n != 1) {
cout << n << " "; // 输出当前值
if (n % 2 == 0) { // 如果 n 是偶数,则将其除以 2
n = n / 2;
} else { // 如果 n 是奇数,则将其乘以 3 并加 1
n = 3 * n + 1;
}
}
cout << n << endl; // 最终输出 1
}
int main() {
int n;
cout << "请输入一个正整数: ";
cin >> n;
// 验证输入是否合法
if (n <= 0) {
cout << "错误:请输入一个大于零的正整数!" << endl;
return 1;
}
// 调用角谷猜想函数并显示结果
collatzConjecture(n);
return 0;
}
```
#### 解析
上述代码实现了角谷猜想的核心逻辑[^1]。具体来说:
- 用户通过标准输入提供一个正整数 \( n \),随后程序进入核心部分——`collatzConjecture` 函数。
- 在函数内部,利用 `while` 循环不断检查变量 \( n \) 是否等于 1。如果不等于 1,则继续执行以下操作:
- 若 \( n \) 为偶数,则将其更新为 \( n/2 \)[^4];
- 若 \( n \) 为奇数,则将其更新为 \( 3n+1 \)[^4]。
- 每次循环都会打印当前的 \( n \) 值,以便观察整个计算流程。
- 当 \( n \) 达到 1 时,退出循环并结束程序运行。
这种设计不仅直观易懂,而且能够清晰展示每一步的变化情况[^3]。
---
阅读全文
相关推荐


















