ν‹°μŠ€ν† λ¦¬ λ·°

λ°˜μ‘ν˜•

μ•Œκ³ λ¦¬μ¦˜λ“€ μ€‘μ—λŠ”, μž¬κ·€ μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³  λΆˆλ¦¬λŠ” 것이 μžˆλ‹€. 이것은 μ•Œκ³ λ¦¬μ¦˜μ˜ 이름이 μ•„λ‹ˆλΌ μ„±μ§ˆμ΄λ‹€. 주어진 λ¬Έμ œκ°€ μžˆμ„ λ•Œ 이것을 같은 μ’…λ₯˜μ˜ 보닀 μ‰¬μš΄ 문제의 닡을 μ΄μš©ν•΄μ„œ ν’€ 수 μžˆλŠ” μ„±μ§ˆμ„ μ΄μš©ν•΄μ„œ 같은 μ•Œκ³ λ¦¬μ¦˜μ„ 반볡적으둜 μ μš©ν•¨μœΌλ‘œμ¨ ν’€μ–΄λ‚΄λŠ” 방법이닀.

 

μž¬κ·€ν•¨μˆ˜ (recursive functions)λž€ ?

ν•˜λ‚˜μ˜ ν•¨μˆ˜μ—μ„œ μžμ‹ μ„ λ‹€μ‹œ ν˜ΈμΆœν•˜μ—¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” κ²ƒμœΌλ‘œ 생각보닀 λ§Žμ€ μ’…λ₯˜μ˜ λ¬Έμ œκ°€ μž¬κ·€μ μœΌλ‘œ 해결이 κ°€λŠ₯ν•˜λ‹€. 

# n! νŒ©ν† λ¦¬μ•Œ
def what(n):
    if n <= 1:
        return 1
    else:
        return n * what(n-1)

 

 

 

문제 μ„€λͺ…

인자둜 0 λ˜λŠ” μ–‘μ˜ μ •μˆ˜μΈ x κ°€ μ£Όμ–΄μ§ˆ λ•Œ, Fibonacci μˆœμ—΄μ˜ ν•΄λ‹Ή 값을 κ΅¬ν•˜μ—¬ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜ solution() 을 μ™„μ„±ν•˜μ„Έμš”.

Fibonacci μˆœμ—΄μ€ μ•„λž˜μ™€ 같이 μ •μ˜λ©λ‹ˆλ‹€.
F0 = 0
F1 = 1
Fn = Fn - 1 + Fn - 2, n >= 2

μž¬κ·€ν•¨μˆ˜ μž‘μ„± μ—°μŠ΅μ„ μ˜λ„ν•œ κ²ƒμ΄λ―€λ‘œ, μž¬κ·€μ  λ°©λ²•μœΌλ‘œλ„ ν”„λ‘œκ·Έλž˜λ°ν•΄ 보고, 반볡적 λ°©λ²•μœΌλ‘œλ„ ν”„λ‘œκ·Έλž˜λ°ν•΄ λ³΄μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

def fibonacci(x):
    
    if x==0:
        return 0
    elif x==1:
        return 1
    else:
        return solution(x-1) + solution(x-2)
λ°˜μ‘ν˜•
λŒ“κΈ€