김찬진의 개발 블로그

23/02/02 [Inf_0204 피보나치 수열] 본문

1일1알고/Java Algorithm

23/02/02 [Inf_0204 피보나치 수열]

kim chan jin 2023. 2. 3. 00:40

설명

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

 

코드

기억할 것

문제 설명이 빈약할 때에는 내 마음대로 생각하지 말고 

강의 들어서 시간 아끼기

[1, 1] 시작 고정

import java.util.Scanner;

public class Main {
    public int[] solution(int n){
        int[] ia = new int[n];
        ia[0] = 1; ia[1] = 1; // [1, 1] 시작 고정

        for(int i=0; i<n-2; i++){ // 앞 2칸 소모했으니 뒤 2칸 제거
            ia[i+2] = ia[i] + ia[i+1];
        }

        return ia;
    }

    public static void main(String[] args) {
        Main m = new Main();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        for(int i : m.solution(n)){
            System.out.print(i + " ");
        }
    }
}
Comments