기초수학_피보나치 수열

jaam._.mini·2023년 11월 14일
0

📒Python 기초 수학

목록 보기
22/46
post-custom-banner

📝피보나치 수열

3번째 항은 2번째 항과 1번쨰 항을 더한 값과 같다

a1 = 1, a2 = 1 이고 n>2때, an = an-2 + an-1 이다.


💻파이썬

Q > 1,1,2,3,5,8,13,21 수열

🏷️ 풀이

inputN = int(input('n 입력 : '))

valueN = 0
sumN = 0

valuePreN2 = 0
valuePreN1 = 0

n = 1
while n <= inputN:
    if n == 1 or n == 2:
        valueN = 1
        valuePreN2 = valueN
        valuePreN1 = valueN
        sumN += valueN
        n += 1

    else:
        valueN = valuePreN2 + valuePreN1
        valuePreN2 = valuePreN1
        valuePreN1 = valueN
        sumN += valueN
        n += 1

print('{}번째 항의 값: {}' .format(inputN, valueN))
print('{}번째 항까지의 합: {}' .format(inputN, sumN))
알고 싶은 n번째를 입력 받음

valueN = N번째 항의 값
sumN = N번쨰 항까지의 합

valuePreN2 = 첫번쨰 항(피보나치 계산을 위한 2번째 전의 숫자n)
valuePreN1 = 두번째 항(피보나치 계산을 위한 1번째 전의 숫자n)

n = 1
사용자가 입력한 수보다 작거나 같을 때 까지 반복
    if n == 1 or n == 2:
        valueN = 1
        valuePreN2 = valueN (문제에 2번째 항의 값이 1임)
        valuePreN1 = valueN (문제에 1번째 항의 값이 1임)
        sumN += valueN
        n += 1

    3번째 인 경우
        valueN = 첫번째 항(valuePreN2) + 두번째 항(valuePreN1) ⭐피보나치 개념⭐
        valuePreN2 = valuePreN1 (순서가 하나 밀려서)
        valuePreN1 = valueN (순서가 하나 밀려서)
        sumN(기존 누저되어 있는 값) += valueN을 더한다
        n += 1

print('{}번째 항의 값: {}' .format(inputN, valueN))
print('{}번째 항까지의 합: {}' .format(inputN, sumN))

출처/참고 제로베이스 데이터 스쿨
profile
비전공자의 데이터 공부법
post-custom-banner

0개의 댓글