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);
}

'Algorithm' 카테고리의 다른 글

[문제풀이] Recursion 심화 (2)  (0) 2022.07.27
[문제풀이] Recursion 심화 (1)  (0) 2022.07.26
Helper Method Recursion (+ Pure Recursion)  (0) 2022.07.24
Call Stack  (0) 2022.07.24
재귀 (Recursion)  (0) 2022.07.24