πŸ™‚ μž¬κ·€ μ•Œκ³ λ¦¬μ¦˜(ν•˜λ…Έμ΄μ˜ 탑)

경이·2022λ…„ 10μ›” 22일
0

πŸ™‚ μž¬κ·€ ν•¨μˆ˜(Recursion Function)

  • μž¬κ·€ ν•¨μˆ˜λž€ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ 자기 μžμ‹ μ„ 또 λ‹€μ‹œ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜λ₯Ό λœ»ν•œλ‹€.
  • μž¬κ·€ ν•¨μˆ˜λŠ” μžκΈ°κ°€ μžμ‹ μ„ κ³„μ†ν•΄μ„œ ν˜ΈμΆœν•˜λ―€λ‘œ ν˜ΈμΆœμ„ 쀑단할 쑰건문을 λ°˜λ“œμ‹œ 포함해야 ν•œλ‹€.

πŸ™‚ μ†ŒμŠ€ μ½”λ“œ(python)

def function(μž…λ ₯κ°’):
    if μž…λ ₯κ°’ > μ œν•œκ°’:
        return function(μž…λ ₯κ°’-1)
    else:
        return μ œν•œκ°’ λ˜λŠ” νŠΉμ •κ°’

πŸ™‚ 예제1) νŒ©ν† λ¦¬μ–Ό

n = 5
def factorial(n):
    if(n == 0):
        return 1
    if(n == 1):
        return 1
    return n * factorial(n-1)
print(factorial(n))            // 120

πŸ™‚ 예제2) ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄

n = int(input())
def fibonacci(n):
    if(n <= 1):
        return n
    return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(n))    

πŸ™‚ 예제3) ν•˜λ…Έμ΄μ˜ 탑

N = int(input())
def hanoi(N, start, end):
    if (N == 1):
        print(start, end)
        return
    hanoi(N-1, start, 6-start-end)
    print(start, end)
    hanoi(N-1, 6-start-end, end)
print(2**N-1)
hanoi(N, 1, 3)
profile
μ΄μ‚¬μ€‘μž…λ‹ˆλ‹€!🌟https://velog.io/@devkyoung2

0개의 λŒ“κΈ€