이전에 피보나치 수에 대한 해설 글을 준비한 적이 있다. 그 당시에는 "재귀적 용법"을 사용하여 피보나치 수 코드를 짰는데, 이 경우 정말 비효율적으로 계산하게 된다.
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)
위처럼 재귀적 용법을 사용하여 피보나치 수를 계산하게 되면 fibonacci(n-1)과 fibonacci(n-2) 안에 엄청나게 중복된 계산이 담겨있게 된다. 뿐만 아니라 fibonacci(n-1)은 또 fibonacci(n-2)+fibonacci(n-3)으로 나타나게 되는데 이 안에도 엄청나게 중복된 계산이 담겨있다.
이 중복된 계산으로 인해 n이 커짐에 따라 계산 시간이 기하급수적으로 늘어나게 되고, 심지어 메모리 초과로 인해 문제가 풀리지 않은 경우를 맞닥뜨릴 수도 있다.
따라서 이 중복된 계산을 모두 없애주어야 완전한 피보나치 수 풀이라고 할 수가 있다.
이 중복 계산을 해소하는 방법으로는 재귀적 용법을 아예 고려하지 않고, 피보나치 수를 한번의 계산으로 처음부터 누적해서 계산해주는 방법이 있다.