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
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.