baseline:
피보나치 수열을 만들어 가면서 짝수들을 더합니다.
sm = 2
i, j = 1, 2
while j <= 4000000:
i, j = j, i+j
if j % 2 == 0:
sm += j
print sm
다른 방법: 피보나치 수열은 (홀-짝-홀)-(홀-짝-홀)-(홀-짝-홀)이 반복됩니다. 세개씩 묶어서 피보나치 수열을 만들고, 가운데 값들을 더합니다.
sm = 2
i, j, k = 1, 2, 3
while j < 4000000:
i, j, k = j+k, j+k+k, j+j+k+k+k
sm += j
print sm
계산 시간의 이득은 없어 보이네요. 뭘한거지... ^^;;;
No comments:
Post a Comment