책좀 보다가 그냥 문뜩 만들어볼까 해서 만들었는데 

동적계획을 활용해서 해보았어


질문!

1. 이 코드를 보았을때 내가 동적계획을 제대로 이해하고있는건지

2. 효율성은 어떤거같은지


형들도 공부할겸~~ 답변좀 한번 부탁해 



import java.util.Scanner;

public class Fibonachi {


public static void main(String[] args) {

// TODO Auto-generated method stub


Fibonachi fibo = new Fibonachi();

System.out.println("피보나치수열 연습...");

System.out.println("피보나치의 항의 개수를 입력하시오");

Scanner in = new Scanner(System.in);

int num = in.nextInt();

int sum = 0;

//동적계획으로 해보자

int [] array = new int[num];

 

for(int i=0; i<num; i++)

{

array[i] = 0;

}

 

 for(int i=1; i<=num; i++)

{

sum += fibo.fibonachi(i, array);

}

 

 

System.out.println(num + "항 까지의 피보나치수열의 합 : " + sum);

 

}

int fibonachi(int num, int[] array)

{

if(num <= 2)

{

array[num-1] = 1;

return array[num-1];

}

if(array[num-2] != 0)

{

return array[num-2] + fibonachi(num-2, array);

}

return fibonachi(num-1, array) + fibonachi(num-2, array);

}


}