/* Recursive factorial function programmed by Arjang

for more info email me arjang7@hotmail.com

a recursive function is a function that will call itself

it is probably the most difficult type of function designing

but when you get use to it, you'll find it VERY USEFULL 

the c version of this function is also available right here.

*/

//inserting header file

#include

using namespace std;

//declaring function

int factorial(int);

void main(void)

    {

    int number, result;

    cout<<"Please Enter A number to get it's factorial: ";

    //getting our target number

    cin>>number;

    //calling the function

    result = factorial(number + 1);

    //printing out results

    cout<

    cout<

}

int factorial(int victim)

    {

    if(victim>1)

        {

        victim = victim - 1;

        /*this is the whole point where you actually call the same function which you are into, it is called a recursive function. */

        victim = victim * factorial(victim);

    }

    return victim;

}