Factorial Calculator An algorithm for calculating f = n! ( n ≥ 0, integer) is described in the flowchart of figure 11.20 . Assume that dv (data valid) is asserted during one clock cycle, indicating when the data (n) is ready, so the computation should commence. Because the circuit will take a variable amount of time to compute f (it depends on the value of n), an output called done must be provided, which should remain high while the machine is idle. Draw a state transition diagram for a Moore-type machine that solves this problem.