문제 링크링크텍스트
"""
def fibonacci(n):
if n <= 2:
return 1
else:
return fibonacci(n-2) + fibonacci(n-1)
n = 1
while n <= 20:
print(fibonacci(n))
n = n + 1
print('끝!')
"""
# 직접 만들어보세요.
fiboIndex = 0; # peopleNum 값이 몇 번째 인덱스인지 저장할 변수
def fibonacci(index): ## index번째 피보나치 수열 값을 출력해주는 함수
if index <= 2:
return 1
else:
return fibonacci(index - 2) + fibonacci(index - 1)
"""
피보나치 수열에서 몇번째 값이 peopleNum과 동일한지 찾고, 몇번째 값인지를 num에 저장 후, num 반환
즉 num번째 피보나치 수열 값 = peopleNum
"""
def FibonaChicken(peopleNum):
num = 0
while (peopleNum != fibonacci(num)): #치킨 먹을 사람과 피보나치 인덱스번호가 동일할 때 까지 num+1을 반복
num = num + 1
# print(index)
if(fibonacci(num)>peopleNum): # 이건 안중요한데, peopleNum값이 피보나치수열이 아니면 무한루프값이 돌게되므로
break # peopleNum보다 피보나치값이 커지면, 그 앞의 인덱스값을 출력해주도록 break걸어줌.
return num
# 피보나치 수열 값 한눈에 보라고 그냥 추가한 코드 20번재 피보나치까지 출력해줌
fiboList = ' '
for i in range (1,20):
fiboList = fiboList + ' ' + str(fibonacci(i))
print(fiboList)
"""
fiboIndex = FibonaChicken(13) # 13 값은 사람 13명
print(fibonacci(fiboIndex-1)) # print(fibonacci(FibonaChicken(13) - 1)) 이것과 동일한 동작인데 쉽게 풀어써보았습니다.
"""
print(fibonacci(FibonaChicken(14) - 1))