프로젝트 오일러 도전기 #2 (with 파이썬 프로그래밍공부)

 문제

Even Fibonacci numbers

Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.


피보나치 수열에서 4백만 이하이면서 짝수인 항의 합

피보나치(Fibonacci) 수열의 각 항은 바로 앞의 항 두 개를 더한 것입니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다.

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

4백만 이하의 짝수 값을 갖는 모든 피보나치 항을 더하면 얼마가 됩니까?


피보나치는 An + An+1 = An+2 의 형태로 계속되는 무한수열인데


이론은 관심도 없고 중요하지 않다


접근아이디어

이번 문제는  a + b = c 의 형태가 계속 반복된다


즉  while 문이나 for 문을 통해서 접근하는게 바람직해 보인다

범위가 지정되있으나 변수가 계속 변하니 while 문으로 조건에 도달하면 break를 넣어주게 한다.

1
2
3
>>> while 1 :
...     if c>4000000:
...         break
cs


while 1 : 구문은 무한반복 구문으로 파이썬에서 애용되는 구문이다

break 를 넣어주지 않으면 계속 돌아가니 주의하자


짝수는 2로 나눴을때 나머지가 0이 되는 숫자이므로

1편에서 배운 %를 활용한다

1
if i%2 == 0 :
cs


필요한 변수는 3개이므로


a=1

b=2

c=3

으로 초기에 잡아주고

답을 저장해놓을 변수를 하나 추가해준다


남은건 문구 조립

a+b=c 를 while 문안에 넣어주고

if 문으로 c를 체크해주고

통과한 c 를 추가해준다


1
2
3
4
5
>>> while 1 :
...     c=a+b
...     if c%2==0:
...         answer+=c
...     b,a= c,b
cs


그런데...




또 틀렸다...



가만 생각해보니 피보나치 시작인 1 2 3중에 2를 더하지 않은거같다...


정답에 2를 더해주니







클리어



댓글

이 블로그의 인기 게시물

프로젝트 오일러 도전기 #5 (with 파이썬 프로그래밍공부)

프로젝트 오일러 도전기 #6 (with 파이썬 프로그래밍공부)

프로젝트 오일러 도전기 #7