Code:
//recursive factorial function
#include <iostream>
#include <iomanip>
using namespace std;

unsigned long factorial( unsigned long );

int main()
{

   for (int i = 1; i <= 10; i++ )
       cout << setw( 2 ) << i << "! = " << factorial( i ) << endl; // this part <<factorial(i)  calls function factorial with the parameter of i?

   return 0;

}

// recursive definition of function factorial
unsigned long factorial( unsigned long number )
{
   if ( number <= 1 )   // base case
      return 1;
   else                 // recursive case
      return number * factorial( number -1 );  //this part here i have problem also number* factorial(number-1 ,so what happens here factorial has no value? so why multiply by number? i'm lost please help.
}