public class DoublingExperiment { static long fib(int n) { if (n < 2) return n; long prev = 0; long curr = 1; for (int i = 2; i <= n; i++) { curr = curr + prev; prev = curr - prev; } return curr; } public static void main(String[] args) { long value; double time; int start = 2 << 20; int stop = 2 << 28; for (int n = start; n <= stop; n <<= 1) { Stopwatch sw1 = new Stopwatch(); value = fib(n); time = sw1.elapsedTime(); System.out.printf("n = %d, running time = %.2f%n", n, time); } } }