CS 200 - Lab 18

Factorial Function

In this lab you will write a function to compute the factorial of a positive integer, and write tests to ensure that the function returns the correct answer for the values 1 through 7.

Recall that the factorial of a positive integer n is defined as the product

1 x 2 x 3 x ... x n

The following table shows the factorials of 1..7:

Input value
Expected result value
1
1
2
2
3
6
4
24
5
120
6
720
7
5040

Implement the factorial function so that it returns the factorial of the int value given as its parameter.

Add calls to the ASSERT_EQUALS function to the main function to test whether or not the factorial function computes the correct answer for the values 1 through 7.

To compute the factorial, use the same approach as in Lab 7: traverse the sequence 1 through n using a loop, and use an accumulator variable to incrementally build up the overall factorial.

When calling the ASSERT_EQUALS function, the first argument value is the expected value of a particular factorial (e.g., 720), and the second argument value is computed by a call to the factorial function (e.g., factorial(6)).  The ASSERT_EQUALS function will compare the expected value to the computed value to make sure they match.  If they do not match, it will cause the program to exit.  Otherwise, it prints a message stating that the test was successful, and the program continues.

You are done when the program produces output similar to the following:

`Checking that 1 == factorial(1) at line 17: YESChecking that 2 == factorial(2) at line 19: YESChecking that 6 == factorial(3) at line 20: YESChecking that 24 == factorial(4) at line 21: YESChecking that 120 == factorial(5) at line 22: YESChecking that 720 == factorial(6) at line 23: YESChecking that 5040 == factorial(7) at line 24: YESAll tests passed!`

Getting started

If you have a solution open in Visual Studio, close it (File->Close Solution).