title: Unable to understand recursive factorial
body: <p>I am new to recursive and I'm having trouble understanding how this recursive factorial function is calculated.</p>
  <p>When I try to run through the code with my mind, this is how I visualize it:</p>
  <blockquote>
  <p>If number = 4,</p>
  <p>1st return: 4 x 3</p>
  <p>2nd return: 3 x 2</p>
  <p>3rd return: 2 x 1</p>
  </blockquote>
  <p>So in my mind it is (4 x 3) * (3 x 2) * (2 x 1) but obviously the right return would be 4 X 3 X 2 X 1 instead. I want to be able to understand how does it get 4 X 3 X 2 X 1.</p>
  <pre><code> public static long factorial(long number) {
          if (number &lt;= 1)
             return 1;
          else
          {
              System.out.println(number + &quot; x &quot; + (number-1) );
             return number * factorial(number - 1);
          }
       }
  </code></pre>
  <p>Any help and explanation would be greatly appreciated.</p>