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);
}

 

'JAVA > 알고리즘' 카테고리의 다른 글

노드 최단거리 (DFS, BFS)  (0) 2021.06.22
BFS(레벨탐색) 예제  (0) 2021.06.16
팩토리얼 (반복문, DFS)  (0) 2021.06.09
2진수 변환 (반복문, 재귀함수)  (0) 2021.06.09
자연수 출력 (반복문, 재귀함수)  (0) 2021.06.09