CS153/hw6/hw4programs/sp22_tests/collatz.oat
jmug ee01a8f5b2 Change hw6 to an unsolved version.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-24 23:10:01 -08:00

33 lines
629 B
Text

bool isEven(int x) {
if (divide(x, 2) * 2 == x) {
return true;
} else {
return false;
}
}
int divide (int a, int b) {
if (b == 0) {
return 0;
}
var result = 0;
while (a > 0) {
a = a - b;
result = result + 1;
}
return result;
}
int helper(int x, int count) {
if (x == 1) {
return count;
} else if (isEven(x)) {
return helper(divide(x, 2), count + 1);
} else {
return helper(3 * x + 1, count + 1);
}
}
int collatz(int x) {
return helper(x, 0);
}
int program(int argc, string[] argv) {
return collatz(12);
}