파이썬_실전 프로젝트

프로젝트 오일러 2번문제 - 피보나치 수열

q-002

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.

 

차례로 두 숫자씩 더해서 새로운 수를 만드는 수열인 피보나치 수열입니다. 처음에는 불규칙한 수열인거 같지만, 항이 커질수록 어떤 일정한 비율을 가진 등비수열에 가까워집니다. 그 공비가 황금비율이라고 부르는 (1.6...)의 비율입니다.

문제는 400만 이하의 피보나치 수중 "짝수"만의 합을 구하는 문제입니다.

일단 400만까지 루프문을 만들고, 짝수이면 합을 계산합니다.

i=1;total=0
while i<4000000 :
    if i%2==0 :
	    total=total+i
    i=i+1
print(total)

그다음은 피보나치수열을 만들어 줍니다.

피보나치수열은 이전값과 현재값을 더하면, 다음항이 됩니다.

    next_i=previous_i+i
    previous_i=i
	i=next_i

그다음 과거항을 현재값으로 바꿔주고, 마지막으로, 현재의 i값을 새로운 i의 값으로 업데이트 하면서 다음루프로 넘어가면 됩니다.

그리고 프린트 문을 중간중간에 넣어서, 값을 확인해 봅니다.

previous_i=1;i=1;total=0
while i<4000000 :
    print("loop ",i)
	if i%2==0 :
		total=total+i
		print("total is ",total)
	next_i=previous_i+i
	previous_i=i
	i=next_i

print(total)

 

댓글

댓글 본문
작성자
비밀번호
버전 관리
노마드
현재 버전
선택 버전
graphittie 자세히 보기