본문 바로가기
알고리즘/코드업

[#CodeUp] 2601 : 피보나치 수열

by dopal2 2024. 2. 27.
반응형

https://codeup.kr/problem.php?id=2601&rid=0

 

피보나치 수열

피보나치 수열이란 앞의 두 수를 더하여 나오는 수열이다. 첫 번째 수와 두 번째 수는 모두 1이고, 세 번째 수부터는 이전의 두 수를 더하여 나타낸다. 피보나치 수열을 나열해 보면 다음과 같다.

codeup.kr

문제설명

---

피보나치 수열이란 앞의 두 수를 더하여 나오는 수열이다.

첫 번째 수와 두 번째 수는 모두 1이고, 세 번째 수부터는 이전의 두 수를 더하여 나타낸다. 피보나치 수열을 나열해 보면 다음과 같다.

 

1, 1, 2, 3, 5, 8, 13 …

 

자연수 N을 입력받아 N번째 피보나치 수를 출력하는 프로그램을 작성하시오.

 

풀이

---

배열을 사용해서 각 단계에 맞는 값들을 저장해서 이용

import java.util.Scanner;

public class Main {
    static void fn(int n, int[] arr){
        if(n==arr.length) return;
        if(n==1 || n==2) arr[n] = 1;
        else{
            arr[n] = arr[n-1] + arr[n-2];
        }
        n+=1;
        fn(n, arr);
    }
    public static void main(String[] arg) throws Exception{
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n+1];
        fn(1, arr);
        System.out.println(arr[n]);
    }
}

 

https://github.com/dopal2/CodeUp/blob/main/src/Main.java_2601

반응형

댓글