Coding/Python 삽질기2007. 9. 16. 14:23

인터넷을 뒤지다가 퍼즐 문제를 발견...

피보나치 수에 대한 문제입니다. 피보나치 수는 아래와 같이 정의됩니다.
f(1) = 1
f(2) = 2
f(3) = f(1) + f(2) = 1 + 2 = 3
f(4) = f(2) + f(3) = 2 + 3 = 5
f(5) = f(3) + f(4) = 3 + 5 = 8
...
f(n) = f(n-2) + f(n-1), n>=3


a와 b라는 두수가 주어져 있을때 두수사이에는 몇개의 피보나치 수가 있을까요?
예를 들어 10과 1
00 사이에는 총 5개(13, 21, 34, 55, 89)의 피보나치 수가 있습니다.

1234567899999987654321 사이에도 몇개의 피보나치 수가 있습니다.
이 구간내의 모든 피보나치수를 더한 값

출처 : http://synap.tistory.com

num1 = 0
num2 = 1
result = 0
sum = 0

while result < 12345678999:
    result = num1 + num2
    num1 = num2
    num2 = result

while result < 99987654321:
    sum += result
    result = num1 + num2
    num1 = num2
    num2 = result

print sum


'Coding > Python 삽질기' 카테고리의 다른 글

http://www.pythonchallenge.com  (0) 2007.09.28
폴더내의 파일 이름 바꾸기  (0) 2007.03.22
스도쿠 제작  (0) 2006.10.22
Posted by chobocho