Many mathematical functions can be defined recursively: 
Many problems can be solved recursively, eg  games of all types from simple ones like the Towers of Hanoi problem to  complex ones like chess. In games, the recursive solutions are  particularly convenient because, having solved the problem by a series  of recursive calls, you want to find out how you got to the solution. By  keeping track of the move chosen at any point, the program call stack  does this housekeeping for you!  This is explained in more detail  later. 
 
