JAVA/알고리즘
피보나치 수열 (반복문, DFS)
lovineff
2021. 6. 9. 10:54
1) 피보나키 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.
2) 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다.
▣ 입력설명
첫 줄에 총 항수 N(3<=N<=45)이 입력된다.
▣ 출력설명
첫 줄에 피보나치 수열을 출력합니다.
▣ 입력예제 1
10
▣ 출력예제 1
1 1 2 3 5 8 13 21 34 55
public static void main(String[] args) {
int N = 10;
int[] integers = solutionByIterator(N);
for (Integer integer : integers) {
System.out.print(integer + " ");
}
System.out.println("");
int[] result = new int[N];
solutionByDFS(0, result);
for (Integer integer : result) {
System.out.print(integer + " ");
}
System.out.println("");
}
private static int[] solutionByIterator(int n) {
int[] arr = new int[n];
// 최초 값 설정
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i < n; i++) {
arr[i] = arr[i-1] + arr[i-2];
}
return arr;
}
private static int[] solutionByDFS(int n, int[] result) {
if(n == 0 || n == 1){
result[n] = 1;
}else if(n >= result.length){
return result;
}else{
result[n] = result[n-1] + result[n-2];
}
return solutionByDFS(n + 1, result);
}