よじろめ覚書

私の理解度重視のソースコードです。

ABC116B - Collatz Problem

問題:B - Collatz Problem

#include <iostream>
#include <set>
using namespace std;

int getCollatz(int x_num) {
    return (x_num % 2)? 3 * x_num + 1 : x_num / 2;
}

int main(void) {
    int s, cnt = 0;
    set<int> se_num;

    cin.tie(0);
    ios::sync_with_stdio(false);
    cin >> s;
    se_num.insert(s);
    while (true) {
        ++cnt;
        s = getCollatz(s);
        if (se_num.count(s)) {
            break;
        }
        se_num.insert(s);
    }

    cout << cnt + 1 << "\n";
    return 0;
}