Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

JAVA: Implement an efficient recursive fibonacci(int n) method that returns a Pa

ID: 3844802 • Letter: J

Question

JAVA:

Implement an efficient recursive fibonacci(int n) method that returns a Pair<Long> object containing the nth and (n+1)the Fibonacci numbers.

That means fibonacci(0) will return (0,1), fibonacci(1) will return (1,1), fibonacci(2) will return (1,2) and so on.

(Note: the pairs (0,1), (1,1) etc. are actually Pairs of Long objects , not ints .)

Your method will be called with some big values of n, so it must be efficient to avoid a timeout.

Hint: This can be implemented using four lines of code.

Explanation / Answer

import java.util.Scanner;

public class FibonacciCalculator {

public static void main(String args[]) {
  
//input to print Fibonacci series upto how many numbers
System.out.println("Enter number upto which Fibonacci series to print: ");
int number = new Scanner(System.in).nextInt();
  
System.out.println("Fibonacci series upto " + number +" numbers : ");
//printing Fibonacci series upto number
for(int i=1; i<=number; i++){
System.out.print(fibonacci2(i) +" ");
}
  
  
}
  

public static int fibonacci(int number){
if(number == 1 || number == 2){
return 1;
}
  
return fibonacci(number-1) + fibonacci(number -2); //tail recursion
}
  

public static int fibonacci2(int number){
if(number == 1 || number == 2){
return 1;
}
int fibo1=1, fibo2=1, fibonacci=1;
for(int i= 3; i<= number; i++){

//Fibonacci number is sum of previous two Fibonacci number
fibonacci = fibo1 + fibo2;   
fibo1 = fibo2;
fibo2 = fibonacci;
  
}
return fibonacci; //Fibonacci number
  
}   
  
}