This problem is a programming version of Problem 2 from projecteuler.net
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with and , the first terms will be:
By considering the terms in the Fibonacci sequence whose values do not exceed , find the sum of the even-valued terms.
Input Format
First line contains that denotes the number of test cases. This is followed by lines, each containing an integer, .
Constraints
Output Format
Print the required answer for each test case.
Sample Input 0
2
10
100
Sample Output 0
10
44
Explanation 0
- For , we have , sum is .
- For , we have , sum is .
Solution
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package hackerrank.contest.projecteuler;
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
/**
*
* @author surachman
*/
public class Even_Fibonacci_numbers_1 {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for(int i = 0; i < t; i++){
long n = sc.nextLong();
long a = 0;
long b = 2;
long ans = b;
while(4*b + a <= n){
ans += 4*b + a;
long temp = a;
a = b;
b = 4*b + temp;
}
System.out.println(ans);
}
}
}
Source : HackerRank
No comments:
Post a Comment