冰雹猜想
约 10 分钟
随便挑一个正整数,偶数就除以 2,奇数就乘 3 再加 1,反复这么做,数字忽大忽小像冰雹上下翻滚,但最后总会掉到 1。我们数一数要几步。
#include <iostream>
using namespace std;
int main() {
int n = 6, step = 0;
while (n != 1) {
if (n % 2 == 0) n = n / 2;
else n = n * 3 + 1;
step++;
}
cout << "用了 " << step << " 步" << endl;
return 0;
}
从 6 开始:6→3→10→5→16→8→4→2→1,一共 8 步。要注意:循环里一定要让 n 真的在变化,否则条件永远成立,就成了死循环,程序会卡住不动。
小纸条
从 6 开始,几步变成 1?
登录 后可看答案