public class Fibonacci { private static Map<Long,Long> map = new HashMap<Long,Long>(); static{ map.put(0L, 1L); map.put(1L, 1L); } public static void main(String[] args) { long t = System.currentTimeMillis(); Fibonacci fi = new Fibonacci(); System.out.println(fi.cal(36L,map)); System.out.println(System.currentTimeMillis() - t); System.out.println(); t = System.currentTimeMillis(); fi = new Fibonacci(); System.out.println(fi.cal(36L)); System.out.println(System.currentTimeMillis() - t); } public Long cal(Long n, Map<Long,Long> map){ if(map.get(n) != null){ return map.get(n); }else{ long i = cal(n-1,map) + cal(n-2,map); map.put(n, i); return i; } }