문제
피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다.
짝수이면서 n 이하인 모든 항의 합은?
input: n = 10
output: 10 // 2 + 8 = 10
input: n = 40
output: 44 // 2 + 8 + 34 = 44
풀이
const output = (input) => {
const nList = [0, 1]
while (true) {
const val = nList[nList.length - 1] + nList[nList.length - 2]
if (val >= input) break
nList.push(val)
}
return nList.reduce((prev, cur) => (!(cur % 2) ? prev + cur : prev), 0)
}
output(10) // 10
output(40) // 44
output(4000000) // 4613732
[출처: http://euler.synap.co.kr/prob_detail.php?id=2]