LeeWang_31
이왕31
LeeWang_31
전체 방문자
오늘
어제
  • 분류 전체보기 (234)
    • 프로젝트 (2)
      • 사이드 프로젝트 (2)
      • Codestates_pre_project (0)
    • 프론트엔드 (169)
      • Html (19)
      • CSS (18)
      • JavaScript (29)
      • Codestates (76)
      • 코딩노트 (27)
    • 백엔드 (10)
      • node (10)
    • 구르는 돌 🌑 (16)
      • Codestates (11)
      • 생각 (4)
      • 공부 흔적 (1)
    • 정보 (18)
      • 오류노트 (2)
      • 인텔리제이 정보 (9)
      • 깃 정보 (3)
      • 기타 정보 (4)
      • 안드로이드스튜디오 정보 (0)
    • CS (7)
      • 이론공부 (7)
    • App (6)
      • Android (3)
      • Kotlin (3)
    • 컴퓨터 수학 (5)
      • 암호론 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • JavaScript
  • 알고리즘
  • ubuntu
  • React
  • html
  • 파이어베이스연동
  • codestate
  • 생활코딩
  • css
  • 코딩애플
  • 2693
  • DP
  • linuix 코드스테이츠
  • 웹팩
  • TODOlist
  • 자바스크립트
  • 백준
  • 2609
  • 코플릿
  • UI/UX
  • 안드로이드스튜디오파이어베이스
  • 사이드프로젝트
  • linux
  • 사용자 친화 웹
  • 1292
  • 사용자친화웹
  • 코드스테이츠
  • figjam
  • 안드로이드스튜디오범블비
  • 번들링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
LeeWang_31

이왕31

[알고리즘] 재귀
프론트엔드/Codestates

[알고리즘] 재귀

2022. 10. 20. 16:26

코드스테이즈 41기 교육 내용을 정리하고 있습니다.
틀린 부분이 있으면 댓글로 알려주시면 감사하겠습니다

 

재귀는 사전적 의미로는 원래의 자리로 돌아온다는 뜻이 있습니다.

코딩에서는 함수에서 자기 자신을 호출하는 꼴로 많이 사용합니다.

 

가장 쉽게 이해 가능한 예시는 팩토리얼입니다.

팩토리얼은 자신을 포함한 이하의 자연수를 전부 곱하는 형태입니다

예를 들어 5 팩토리얼은 5*4*3*2*1입니다. ( 5! = 5*4*3*2*1 ) 

 

5!은 5*4!입니다.

4!은 4*3!입니다.

. . .

 

이렇게 팩토리얼이라는 함수가 있다면 자기 자신을 리턴에 호출하는 형태일 것입니다.

코드로 나타내 보면 다음과 같습니다.

function factorial(num){
    console.log(num)
    if(num===1){
        console.log("number1 return start")
        return 1
    }
    return num * factorial(num-1)
}

function factorial(num){ //num=5
    if(num===1){ //num=5, false
        return 1
    }
    return num * factorial(num-1){//num=4
            if(num===1){ //num=4, false
            return 1
        }
        return num * factorial(num-1){//num=3
            if(num===1){ //num=3, false
                return 1
            }
            return num * factorial(num-1){//num=2
                if(num===1){ //num=2, false
                    return 1
                }
                return num * factorial(num-1){//num=1
                    if(num===1){ //num=1, true
                        return 1	//return 1
                    }
                    return num * factorial(num-1) //X
                    }}
                    }
                }
            }
        }
    }
}
저작자표시 (새창열림)

'프론트엔드 > Codestates' 카테고리의 다른 글

[사용자 친화 웹] UI/UX - 1  (0) 2022.10.24
[JSON]JSON.stringify  (0) 2022.10.21
[React] React데이터 흐름  (0) 2022.10.11
[HTTP/네트워크] REST API  (2) 2022.10.07
[HTTP/네트워크] 브라우저의 작동원리 (보이는 곳)  (0) 2022.10.06
    '프론트엔드/Codestates' 카테고리의 다른 글
    • [사용자 친화 웹] UI/UX - 1
    • [JSON]JSON.stringify
    • [React] React데이터 흐름
    • [HTTP/네트워크] REST API
    LeeWang_31
    LeeWang_31
    이왕 할 거면 기분 좋게

    티스토리툴바