/* 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 write here.

*/

//inserting header file

#include

//declaring function

int factorial(int);

void main(void)

    {

     int number, result;

     printf("Please Enter A number to get it's factorial: ");

     //getting our target number

     scanf("%d", &number);

     //calling the function

     result = factorial(number + 1);

     //printing out results

     printf("\nThe factorial is : %d", result);

     printf("\n\n\n\n\n\n");

}

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;

    }