Algorithm
                
              [문제풀이] Recursion
                주인장 꼬비
                 2022. 7. 24. 17:30
              
              
            
            
// power(2,0) // 1
// power(2,2) // 4
// power(2,4) // 16
function power(num, pow) {
  if (pow === 0) return 1;
  return num * power(num, pow - 1);
}// udemy Solution
function power(base, exponent){
    if(exponent === 0) return 1;
    return base * power(base,exponent-1);
}

//factorial(1) // 1
// factorial(2) // 2
// factorial(4) // 24
// factorial(7) // 5040
function factorial(num) {
  if (num <= 1) return 1;
  return num * factorial(num - 1);
}주의사항 - 0! 은 1이다... (자세한 설명이 들어간 링크 : https://johnleeedu.tistory.com/23)

// Udemy 
function factorial(x){
   if (x < 0 ) return 0;
   if (x <= 1 ) return 1;
   return x * factorial(x-1);
}

// productOfArray([1, 2, 3]); // 6
// productOfArray([1, 2, 3, 10]); // 60
function productOfArray(arr) {
  if (!arr.length) return 1;
  return arr[0] * productOfArray(arr.slice(1));
}// Udemy
function productOfArray(arr) {
    if(arr.length === 0) {
        return 1;
    }
    return arr[0] * productOfArray(arr.slice(1));
}

// SAMPLE INPUT/OUTPUT
// recursiveRange(6); // 21
// recursiveRange(10); // 55
function recursiveRange(num) {
  if (num === 0) return 0;
  return num + recursiveRange(num - 1);
}// Udemy
function recursiveRange(x){
   if (x === 0 ) return 0;
   return x + recursiveRange(x-1);
}

// fib(4) // 3
// fib(10) // 55
// fib(28) // 317811
// fib(35) // 9227465
function fib(num) {
  if (num === 1 || num === 2) return 1;
  return fib(num - 1) + fib(num - 2);
}// Udemy
function fib(n){
    if (n <= 2) return 1;
    return fib(n-1) + fib(n-2);
}