When you call a function recursively, they add the new function to a stack until have a final result (return). When it occurs, you go back return by return in the stack.
An Execution example:
First Round wacky(4, 6):
- 
4 <= 1? No, so callwacky(4 - 1, 6 - 1)Second Round wacky(3, 5):- 
3 <= 1? No, so callwacky(3 - 1, 5 - 1)Third Round wacky(2, 4):- 
2 <= 1? No, so callwacky(2 - 1, 4 - 1)Fourth Round wacky(1, 3):- 1 <= 1? Yes
- return 3;
 
- return 3 + 4;
 
- 
- return 3 + 4 + 5;
 
- 
- return 3 + 4 + 5 + 6;
solved What is returned by the call wacky 4,6? also how to calculate this recursion?