Cached Fibonacci in Java

Run Settings
LanguageJava
Language Version
Run Command
import java.math.BigInteger; import java.util.ArrayList; import java.util.List; class Main { public static void main(String[] args) { CachedFib fib = new CachedFib(); String fmt = "fib(%d) = %d%n"; for (int i = 0; i <= 10; ++i) { System.out.printf(fmt, i, fib.fibonacci(i)); } System.out.printf(fmt, 100, fib.fibonacci(100)); } } class CachedFib { private List<BigInteger> cache = new ArrayList<>(); public CachedFib() { cache.add(new BigInteger("0")); cache.add(new BigInteger("1")); } public BigInteger fibonacci(int n) { BigInteger result; if (n < cache.size()) { result = cache.get(n); } else { result = fibonacci(n - 1).add( fibonacci(n - 2) ); cache.add(result); } return result; } }
Editor Settings
Theme
Key bindings
Full width
Lines