문제
Begin the sequence with 1 and 2. Each following term is the sum of the previous two. Include only even-valued terms no greater than limit, then add them.
Implement even_fibonacci_sum(limit).
Input
limit: The largest term value that may be included.
Output
Return the sum, or 0 if there are no eligible terms.
제약 조건
0 ≤ limit ≤ 10¹⁵. The result fits a signed 64-bit integer.
예시
입력:
limit = 50
예상 출력:
expected = 44
입력:
long long limit = 50;
예상 출력:
long long expected = 44;
입력:
long limit = 50;
예상 출력:
long expected = 44;
설명
The even terms are 2, 8, and 34. Their sum is 44.
입력:
limit = 1
예상 출력:
expected = 0
입력:
long long limit = 1;
예상 출력:
long long expected = 0;
입력:
long limit = 1;
예상 출력:
long expected = 0;
설명
The first even term is 2, which exceeds the limit.
접근 방법
먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.
힌트 1
You only need the even Fibonacci terms, not the entire sequence.
힌트 2
Generate the sequence until the next term exceeds the limit and add qualifying terms.
힌트 3
Watch the boundary when the limit itself is a Fibonacci term.
예상 복잡도
O(log limit) time, O(1) extra space
참고 자료
이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.