#include <iostream>
/*
- The sequence begins with a positive integer: n
- If n is odd, the next number is: 3n+1
- If n is even, the next number is: n/2
- The sequence ends with: 1
*/
void collatz_sequence(int n) {
std::cout << n << " ";
while (n > 1) {
if (n % 2 == 0) { // even
n = n / 2;
}
else { // odd
n = 3 * n + 1;
}
std::cout << n << " ";
}
}
int main(void)
{
collatz_sequence(7);
}
/*
run:
7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
*/