8월 25일 (수) 재귀흐름(2)

남이섬·2021년 8월 25일
0
post-custom-banner
function sumTo(num) {
  //base case (조건이 충족되면 탈출)
  if (num <= 0) {
    return 0
  }
  //Recursive Case (조건이 안되면 재귀 함수로)
  return num + sumTo(num - 1)
}

sumTo(5);
num = 5;
= 5 + 4 + 3 + 2 + 1

num이 0이랑 같거나 작으면 0값으로 탈출

  if (num <= 0) {
    return 0
  }

num = 5이므로 recursive case 진행

  return num + sumTo(num - 1)

5 (재귀함수)=> 4 (재귀함수)=> 3 (재귀함수)=> 2 (재귀함수)=> 1(재귀함수)

num = 1 이면

function sumTo(1) {
  if (num <= 0) {
    return 0
  }
  return 1 + sumTo(1 - 1)
       //1 + sumTo(0) => sumTo(0) 재귀 함수 진행//
}

재귀 함수 somTo(0)

function sumTo(0) {
  if (0 <= 0) {
    return 0
  }
  return num + sumTo(num - 1)
}

num이 0이므로 0 값으로 탈출

  if (0 <= 0) {
    return 0
  }

다시 거꾸로 돌아 온다

num = 1

function sumTo(1) {
  return 1 + sumTo(1 - 1)
      // 1 + sumTo(0)
      // 1 + 0
      // retrun value 1
}

num = 2

function sumTo(2) {
  return 2 + sumTo(2 - 1)
      // 2 + sumTo(1)
      // 2 + 1
      // retrun value 3
}

num = 3

function sumTo(3) {
  return 3 + sumTo(3 - 1)
      // 3 + sumTo(2)
      // 3 + 3
      // retrun value 6
}

num = 4

function sumTo(4) {
  return 4 + sumTo(4 - 1)
      // 4 + sumTo(3)
      // 4 + 6
      // retrun value 10
}

num = 5

function sumTo(5) {
  return 5 + sumTo(5 - 1)
      // 5 + sumTo(4)
      // 5 + 10
      // retrun value 15
}

= 15

profile
즐겁게 살자
post-custom-banner

0개의 댓글