Script / CSS

G1sUtil.js

G1sBlogger.js

G1sNavigationList.js

G1sCode

Posts List


2012년 2월 12일 일요일

[Project Euler] 2. 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합

2. 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합

피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까?
Click

간단하게 갑니다. 그냥 단순 반복 알고리즘.
아무리 생각해도 4백만 이하 짝수의 피보나치수를 구하는 공식은 안보이는 군요.
라고 하지만 딱 생각해도 공식이 없을 것 같은 문제입니다.
<script>
function p002(max){ 
 var n = new Array(); 
 n[0] = 1;
 n[1] = 2;
 
 var i = 2;
 var sum = 0;
 
 while(1){
  var temp = (i+1)%2;
  if(n[temp]>max)  break;
   
  if(n[temp]%2 == 0) sum += n[temp];
  
  n[i%2] += n[temp];
  
  i++;
 }
 
 return sum;
}
</script>
역시나 일반화를 위해 max값을 받으면 짝수 값을 return 하게...

댓글 없음:

댓글 쓰기