Thursday, 13 March 2014

Factorial. Fibonacci. Javascript recursion.



function factorial(n) {
  return n ? n*factorial(n- 1) : 1 ;
}
/*** Explanation of recursion ***
       factorial(5)
      
    1. factorial(5) == factorial(4)*5
    2. factorial(4) == factorial(3)*4;
    3. factorial(3) == factorial(2)*3;
    4. factorial(2) == factorial(1)*2;
    5. factorial(1) == factorial(0)*1;
    6. factorial(0) == 1;
   
    Which means:
    5. factorial(1) == 1*1 == 1;
    4. factorial(2) == 1*2 == 2;
    3. factorial(3) == 2*3 == 6;
    2. factorial(4) == 6*4 == 24;
    1. factorial(5) == 24*5 == 120;

*/

function fibonacci(n) {
   if (n < 2){
     return 1 ;
   }else {
     return fibonacci( n-2) + fibonacci( n-1);
   }
}

/*** Explanation of recursion ***
       fibonacci(5)
      
    1. fibonacci(5) == fibonacci(3)+fibonacci(4);
    2. fibonacci(4) == fibonacci(2)+fibonacci(3);
    3. fibonacci(3) == fibonacci(1)+fibonacci(2);
    4. fibonacci(2) == fibonacci(0)+fibonacci(1);
    5. fibonacci(1) == 1;
    6. factorial(0) == 1;
   
    Which means:
    4. fibonacci(2) == 1+1 ==2;
    3. fibonacci(3) == 1+2 ==3;
    2. fibonacci(4) == 2+3 ==5;
    1. fibonacci(5) == 3+5 ==8;

*/

No comments:

Post a Comment