leading to the foo( box since that function executes the return statementwe follow the dashed edge back to the main routine execution continues by following the next edge out of the main routine boxwhich leads us to the bar( function box from therewe continue to follow the directed edges between the boxes and eventually return to the main(routine box with no further edges to follow at that pointexecution terminates the fibonacci sequence the fibonacci sequence is sequence of integer values in which the first two values are both and each subsequent value is the sum of the two previous values the first terms of the sequence are the nth fibonacci number can be computed by the recurrence relation (for ) ib(nf ib( ib( )if nif or recursive function for the computing the nth fibonacci number is shown in listing this function illustrates the use of multiple recursive calls from within the body of the function the call tree corresponding to the function call fib( is illustrated in figure listing the fib(recursive function compute the nth number in the fibonacci sequence def fibn )assert > "fibonacci not defined for if = return else return fib( fib( how recursion works when function is calledthe sequential flow of execution is interrupted and execution jumps to the body of that function when the function terminatesexecution returns to the point where it was interrupted before the function was invoked but how does it know where to returnwe know for sureit' not magic