5.18 · exercise
Fix the loop bound
warning
This program is broken. Find the bug and fix it so the checks pass.
This program should compute n factorial, the product 1 * 2 * ... * n, for the n it reads, and print it. With n set to 5 it runs and prints a number, but the number is wrong: the loop stops one step too early, so the last value never makes it into the product.
Find the loop's exit condition and correct the bound so every value from 1 through n is included. Leave the rest of the program as it is, and let the loop do the work rather than writing the result in directly.
What is checked
- the corrected product is printed on its own line
- the program exits cleanly
- the product is still computed by the loop, not written in as a constant
- the same holds for other values of
nyou do not see, 0 among them (0!is 1)
specification
stdin5
stdoutprints the right output
exitexits with the right code
sourcedoes not hardcode the answer
hiddenright output and exit code on 4 more inputs you do not see
We run your program on the input above and on the hidden ones, and compare what it does. Nothing is matched against a stored solution.