@JohnRennie factorial(5) = 5 * factorial(4)
factorial(4) = 4 * factorial(3)
factorial(3) = 3 * factorial(2)
factorial(2) = 2 * factorial(1)
factorial(1) = 1 * factorial(0)
factorial(0) = 1
factorial(1) = 1 * 1 = 1
factorial(2) = 2 * 1 = 2
factorial(3) = 3 * 2 = 6
factorial(4) = 4 * 6 = 24
factorial(5) = 5 * 24 = 120
Each indentation level ^ there corresponds to a level in a recursive call stack. factorial(5) can only return if its call to factorial(4) returns, and so on. So you go down deeper and deeper until factorial(0) can return literal 1 to its caller factorial(1), then factorial(1) ca…
factorial(4) = 4 * factorial(3)
factorial(3) = 3 * factorial(2)
factorial(2) = 2 * factorial(1)
factorial(1) = 1 * factorial(0)
factorial(0) = 1
factorial(1) = 1 * 1 = 1
factorial(2) = 2 * 1 = 2
factorial(3) = 3 * 2 = 6
factorial(4) = 4 * 6 = 24
factorial(5) = 5 * 24 = 120
Each indentation level ^ there corresponds to a level in a recursive call stack. factorial(5) can only return if its call to factorial(4) returns, and so on. So you go down deeper and deeper until factorial(0) can return literal 1 to its caller factorial(1), then factorial(1) ca…