*์ฌ๊ท ํจ์
ํจ์๊ฐ ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํจ์. (๋ฐ๋ณต๋ฌธ๊ณผ ๋น์ทํ๋ฏ๋ก ๋ฌดํ๋ฃจํ์ ๋น ์ง์ง ์๊ธฐ ์ํด์๋ ๋ฐ๋์ ํ์ถ ์กฐ๊ฑด์ด ํ์ํ๋ค.)
*1๋ถํฐ n๊น์ง์ ํฉ
def n_sum(n):
if n==1:
return 1
return n + n_sum(n-1)
1๋ถํฐ n๊น์ง์ ํฉ์ , ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์๋์ ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํ์๋์ ์ฐจ์ด์ ์ด ์๋ค.
๋ฐ๋ณต๋ฌธ (for~range)์ ์ฌ์ฉํ๋ค๋ฉด, 0๋ถํฐ n์ ํฅํด๊ฐ๋ฉฐ ์ฐ์ฐํ๊ธฐ ๋๋ฌธ์ bottom-up ๋ฐฉ์
์ฌ๊ทํจ์์ ๊ฒฝ์ฐ๋ n๋ถํฐ ์์ํ์ฌ 0์ ํฅํ์ฌ ์ฐ์ฐํ๊ธฐ ๋๋ฌธ์ top-down๋ฐฉ์์ด๋ผ๊ณ ํ๋ค.
* ํฉํ ๋ฆฌ์ผ
ํฉํ ๋ฆฌ์ผ : n! = 1*2*3........*n
def factorial(n):
if n == 1 :
return 1
print(n)
return n * n_sum(n-1)
1๋ถํฐ n๊น์ง์ ํฉ์์ +๋ง *๋ก ๋ฐ๊พธ์ด์ฃผ๋ฉด ํฉํ ๋ฆฌ์ผ์ ๊ตฌํ๋ ์ฌ๊ทํจ์๊ฐ ๋๋ค.
* ํผ๋ณด๋์น ์ฌ๊ทํจ์
n๋ฒ์งธ ์ : n-1๋ฒ์งธ์ + n-2๋ฒ์งธ ์
def fibo(n):
if n<2 :
return n
return fibo(n-1) +fibo(n-2)
*ํผ๋ณด๋์น ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ตฌํ
n = int(input())
arr = [0,1,1]
if n < 3 : answer = arr[n]
else:
while(True):
arr.append(sum(arr[-2:]))
if len(arr)>n :
answer = arr[n]
break
print(answer)