Exercise 3.1, p. 50

Write an iterative procedure for factorial that multiplies the LOWER values first:
Let A begin at 1.

   n! = A × 1 × 2 × 3 × ... × (n-1) × n
        -----
	  |
      Compute this product
      first and call result A

      =     A × 2 × 3 × ... × (n-1) × n
	    -----
	      |
          Compute this product
          next and call result A

      =         A × 3 × ... × (n-1) × n
                     .
                     . (etc.)
                     .
      =                           A × n

      =                               A

      =                               n!
At each step, we transform the problem of computing
    A × (low × low+1 × low+2 × ... high)
into
    (A × low) × (low+1 × low+2 × ... × high)
So we have to know high as well as track a changing low.