피보나치 수열을 만드는 함수를 만들어보기.
1, 1, 2, 3, 5, 8, 13, 21, 34, 55
이전 2개의 값을 더해서 현재 값이 되는 패턴.
점화식: D[i] = D[i - 1] + D[i - 2]

  • 재귀 호출에서 성능을 개선 할수 있는지?

Sample Source Code

public class Fibonacci{
	static double[] storedValue = new double[100];
	
	public static double dp(int x) {
		if( x == 1 || x == 2 ) return 1;

		//한번 구한 값을 저장하여 반환함
		if(storedValue[x] != 0 ) 
			return storedValue[x];
		
		//새로 구하는 수는 계산 후 재 사용을 위해서 저장해놓음
		storedValue[x] = dp(x-1) + dp(x-2);
		return storedValue[x];
	}
	
	
	public static void main(String[] args) {
		
		System.out.println(dp(50)); 
	}	
}