冰雹猜想

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?

登录 后可看答案

冰雹猜想 · C++ 入门 · op599 课程