Hi everyone,

I am a C++ newbie. Here is the code (3n+1 algorithm) I am having problem with. No matter what the input number is (to the alg function), the result is always the same (namely, 16384). The algorithm seems correct to me, I guess the problem is with the cout in the main function. I don't know how to fix it. THX in advance.

Code:#include <iostream> int alg(int, int); int main() { using namespace std; int result = alg(300,1); cout << result; cin.get(); } //counter = 1 int alg(int n, int counter) { using namespace std; if (n == 1) return counter; else { if (n % 2 == 1) alg(3*n+1, ++counter); else alg(n/2, ++counter); } }