Skip to content

Instantly share code, notes, and snippets.

@frekele
Created October 10, 2019 23:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frekele/bef037a59acecb2277969fa2472e0e1a to your computer and use it in GitHub Desktop.
Save frekele/bef037a59acecb2277969fa2472e0e1a to your computer and use it in GitHub Desktop.
import java.math.BigDecimal;
import java.time.Duration;
import java.time.Instant;
import java.util.Scanner;
public class IterativeFibonacci {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a number:");
long fib = in.nextLong();
System.out.println("#####################################################################");
System.out.println("FIBONACCI: " + fib);
Instant before = Instant.now();
BigDecimal i = BigDecimal.valueOf(1);
BigDecimal j = BigDecimal.valueOf(0);
BigDecimal t;
for (long k = 1; k <= fib; k++) {
t = i.add(j);
i = j;
j = t;
System.out.println("... " + j);
}
BigDecimal result = j;
Instant after = Instant.now();
long diff = Duration.between(before, after).toMillis();
System.out.println("RESULT: !" + fib + " = " + result);
System.out.println("DURATION: " + diff + " milliseconds");
System.out.println("#####################################################################");
}
}
import java.math.BigDecimal;
import java.time.Duration;
import java.time.Instant;
import java.util.Scanner;
public class RecursiveFibonacci {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a number:");
long fib = in.nextLong();
System.out.println("#####################################################################");
System.out.println("FIBONACCI: !" + fib);
Instant before = Instant.now();
BigDecimal result = fibonacci(fib);
Instant after = Instant.now();
long diff = Duration.between(before, after).toMillis();
System.out.println("RESULT: !" + fib + " = " + result);
System.out.println("DURATION: " + diff + " milliseconds");
System.out.println("#####################################################################");
}
private static BigDecimal fibonacci(long fib) {
if (fib == 0) {
return BigDecimal.valueOf(0);
} else if (fib == 1) {
return BigDecimal.valueOf(1);
} else {
BigDecimal result = fibonacci(fib - 1L).add(fibonacci(fib - 2L));
System.out.println("... " + result);
return result;
}
}
}
@frekele
Copy link
Author

frekele commented Oct 10, 2019

Online java compiler:
IterativeFibonacci.java: https://www.jdoodle.com/a/1BPF
RecursiveFibonacci.java https://www.jdoodle.com/a/1BPO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment