Friday, 16 December 2022

Task and Solution : ProjectEuler+Project Euler #2: Even Fibonacci numbers in Java (HackerRank)

 

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