Language: C++

#include<bits/stdc++.h> using namespace std; #define FOR(i, a, b) for (int i = (a); i < (b); ++i) #define REP(i, n) for (int i = 0; i < (n); ++i) int f(int n){
	if (n % 2 == 0) {
		return n / 2;
	} else {
		return 3 * n + 1;
	}
}

int main() {
	int n; cin >> n;
	vector<bool> checked(1000000, false);
	bool isfound = false;
	checked[n] = true;
	int i = 2;
	int b = n;
	int ans = 0;
	while (!isfound) {
		if (checked[f(b)]) {
			isfound = true;
			ans = i;
		} else {
			checked[f(b)] = true;
			b = f(b);
		}
		++i;
	}
	cout << ans << endl;

	return 0;
}

Compiler output:
a.cc:1:25: warning: extra tokens at end of #include directive
    1 | #include<bits/stdc++.h> using namespace std; #define FOR(i, a, b) for (int i = (a); i < (b); ++i) #define REP(i, n) for (int i = 0; i < (n); ++i) int f(int n){
      |                         ^~~~~
a.cc:2:9: error: expected unqualified-id before 'if'
    2 |         if (n % 2 == 0) {
      |         ^~
a.cc:4:11: error: expected unqualified-id before 'else'
    4 |         } else {
      |           ^~~~
a.cc:7:1: error: expected declaration before '}' token
    7 | }
      | ^
a.cc: In function 'int main()':
a.cc:10:16: error: 'cin' was not declared in this scope; did you mean 'std::cin'?
   10 |         int n; cin >> n;
      |                ^~~
      |                std::cin
In file included from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:146,
                 from a.cc:1:
/usr/include/c++/14/iostream:62:18: note: 'std::cin' declared here
   62 |   extern istream cin;           ///< Linked to standard input
      |                  ^~~
a.cc:11:9: error: 'vector' was not declared in this scope
   11 |         vector<bool> checked(1000000, false);
      |         ^~~~~~
a.cc:11:9: note: suggested alternatives:
In file included from /usr/include/c++/14/vector:66,
                 from /usr/include/c++/14/functional:64,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:53:
/usr/include/c++/14/bits/stl_vector.h:428:11: note:   'std::vector'
  428 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
/usr/include/c++/14/vector:93:13: note:   'std::pmr::vector'
   93 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
a.cc:11:16: error: expected primary-expression before 'bool'
   11 |         vector<bool> checked(1000000, false);
      |                ^~~~
a.cc:13:9: error: 'checked' was not declared in this scope
   13 |         checked[n] = true;
      |         ^~~~~~~
a.cc:18:29: error: 'f' was not declared in this scope
   18 |                 if (checked[f(b)]) {
      |                             ^
a.cc:27:9: error: 'cout' was not declared in this scope; did you mean 'std::cout'?
   27 |         cout << ans << endl;
      |         ^~~~
      |         std::cout
/usr/include/c++/14/iostream:63:18: note: 'std::cout' declared here
   63 |   extern ostream cout;          ///< Linked to standard output
      |                  ^~~~
a.cc:27:24: error: 'endl' was not declared in this scope; did you mean 'std::endl'?
   27 |         cout << ans << endl;
      |                        ^~~~
      |                        std::endl
In file included from /usr/include/c++/14/istream:41,
                 from /usr/include/c++/14/sstream:40,
                 from /usr/include/c++/14/complex:45,
                 from /usr/include/c++/14/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:127:
/usr/include/c++/14/ostream:744:5: note: 'std::endl' declared here
  744 |     endl(basic_ostream<_CharT, _Traits>& __os)
      |     ^~~~