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))