/******************************************************************/
// R. A. Hillyard
// factorial2.cpp
// last modified: 02/15/2001
//
// program to calcualte a factorial n where n is entered by the user
/******************************************************************/
#include<iostream>
using namespace std;
int main()
{
bool flag = true;
while(flag)
{
int product = 1; //hold the result
int n = 0; //hold user input
do{
cout << "enter a positive integer less than 13 (0 to quit): ";
cin >> n;
//check for valid input
//loop while input is out or range
if(n > 12 || n < 0)
{
cout << n << " is invalid try again!\n";
}
}while(n>12 || n<0);
//if sentinal value - set flag to false to exit loop
if(n == 0)
flag = false;
//input is ok - now compute the factorial
else
{
int j = 1;
while(j <= n)
{
product *= j;
j++;
}
cout << n << " factorial is equal to: " << product << endl;
}//end else
}//end while flag
return 0;
}//end main
/******************************************************************/
enter a positive integer less than 13 (0 to quit): 3
3 factorial is equal to: 6
enter a positive integer less than 13 (0 to quit): 4
4 factorial is equal to: 24
enter a positive integer less than 13 (0 to quit): 9
9 factorial is equal to: 362880
enter a positive integer less than 13 (0 to quit): 12
12 factorial is equal to: 479001600
enter a positive integer less than 13 (0 to quit): 16
16 is invalid try again!
enter a positive integer less than 13 (0 to quit): 13
13 is invalid try again!
enter a positive integer less than 13 (0 to quit): -8
-8 is invalid try again!
enter a positive integer less than 13 (0 to quit): 0