Programming Language Training/Python
Baekjoon Training #10870
생각하는 이상훈
2022. 7. 29. 03:33
728x90
#10870
a = int(input())
num_list = [0,1]
for i in range(2, a+1):
num = num_list[i-1] + num_list[i-2]
num_list.append(num)
print(num_list[num])
우선 친숙한 for문을 이용하여 코드를 작성해 보았다.
0,1이 들어있는 num_list를 만들고 for문을 이용하여 입력한 번호 a에 따라 a-2인덱스의 숫자와 a-1인덱스의 숫자를 더하여 num을 num_list에 append해주어 피보나치 수열을 구현하였다. 하지만 이 문제의 의도는 재귀함수를 이용하는 것이어서 다른 방법을 고안하였다.
def fibonacci(a):
if a <= 1:
return a
return fibonacci(a-1) + fibonacci(a-2)
a = int(input())
print(fibonacci(a))
fibonacci(a)의 return값을 fibonacci(a-1)+fibonacci(a-2)로하여 재귀함수의 특성을 이용하여 풀어냈다.
728x90