참고 : http://palpit.tistory.com/739


코딩도장이라는 곳이 있더라.

알고리즘 문제를 주고, 언어 관계없이 문제풀이를 하고 공유하는 곳인거 같던데,

요새 파이썬을 보고 있던지라 피보나치 수열 문제를 보니 생성기(yield)를 써서 구현해 보고 싶었다


그냥 for문 안에서 만들어도 되긴 하는데, 

생성기라는 놈을 쓸 곳이 마땅히 생각나지 않는데 좋은 예제 였던 거 같다.


def Fibonacci():

    a, b = 1, 1

    while True:

        yield b

        a, b = b, a + b

 

def main():

    g, s = Fibonacci(), 0

    for i in g:

        if i > 4000000:

            break

        elif i % 2 == 0:

            s += i

    print(s)

 

if __name__ == "__main__":

    main()


#f = Fibonacci()

#print(f.__next__())

#print(f.__next__())

#print(f.__next__())

#print(f.__next__())

#print(f.__next__())

 

 

#for i in Fibonacci() :

#    print (i)

#    if i > 1000 : break





Posted by motolies
,