파이썬_실전 프로젝트

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

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

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

 

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.

 

피보나치수열을 만들고, 짝수인지 판단해서, 합을 구하면 가단합니다.

 

-풀이-

1. 100이하의 피보나치 수열 만들어 보기
i=1; previous_i = 1
while i<=100:
    print(i)
    next_i = previous_i + i
    previous_i = i
    i = next_i
1
2
3
5
8
13
21
34
55
89

 

2. 100 이하의 피보나치 수열 만들어 보기 - 2(다른방법)
a=1;b=1
while b<=100 :
    print(b)
    a,b = b,a+b
1
2
3
5
8
13
21
34
55
89

 

3. 짝수이면 누적
a=1;b=1;total=0
while b<=4000000 :
    print(b,end=', ')
    if b%2==0:
        total = total + b
    print(total)
    a,b = b,a+b
1, 0
2, 2
3, 2
5, 2
8, 10
13, 10
21, 10
34, 44
55, 44
89, 44
144, 188
233, 188
377, 188
610, 798
987, 798
1597, 798
2584, 3382
4181, 3382
6765, 3382
10946, 14328
17711, 14328
28657, 14328
46368, 60696
75025, 60696
121393, 60696
196418, 257114
317811, 257114
514229, 257114
832040, 1089154
1346269, 1089154
2178309, 1089154
3524578, 4613732

 

 

댓글

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