피보치킨

휘이·2021년 12월 28일
1

문제 링크링크텍스트


"""
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))
profile
튜토리얼에도 고난과 역경이 있다.

0개의 댓글