in the nonrecursive version, a
retrn
value of 2 means this call has completed; in this version an "implicit" exit then occurs; this must be made explicit in the implementation
towers(n-1,a,i,f);