Tuesday, April 14, 2015

Project Euler #2

4백만을 넘지 않는 피보나치 수열 중 짝수의 합

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: