ABC116B - 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; }