Even Fibonacci Numbers
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
400만 이하의 피보나치 수열 중 짝수의 합을 구하는 문제이다.
내가 생각해낸 구현 방법은
while
을 활용해서 400만 이하의 피보나치 수열 중 짝수를 전부 더한다.먼저 n번째 피보나치 수열을 출력하는 함수를 구현해주자.
//Python
def func(n):
a = 1
b = 1
if n == 1 or n == 2: # 첫 두 수열은 1로 예외처리
return 1
for i in range(1, n): # 3번째 수열부터 피보나치 수열을 구현
a = b
b = a+b
return a
다음은 400만 이하의 피보나치 수열 중 짝수를 전부 더해준다.
i = 1
while func(i) <= 4000000:
if func(i) % 2 == 0:
sum_even_fib += func(i)
i = i+1
print(sum_even_fib)
>>> 4613732
이렇게 끝을 내도 좋지만 배열을 활용해서 사용된 짝수 피보나치 수열도 전부 구해보자.
even_fib = [] # 짝수인 피보나치 수열
i = 1
while func(i) <= 4000000:
if func(i) % 2 == 0:
sum_even_fib += func(i)
even_fib.append(func(i))
i = i+1
solution(4000000)
print(even_fib)
print(sum(even_fib))
>>> [2, 8, 34, 144, 610, 2584, 10946, 46368, 196418, 832040, 3524578]
4613732
오늘은 여기까지
-2024.12.21-