ezhoon

[인프런] 02_04 피보나치 수열 본문

[Java] 인프런 문제풀이/Array(배열)

[인프런] 02_04 피보나치 수열

ezhoon 2022. 1. 21. 10:08

문제


  1. 총 항 수 N만큼의 피보나치 수열 출력

출력 예시

 

이해


- 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.

- 만약 7이 입력 된다면 1 + 1 + 2 + 3  + 5 + 8 + 13 이런 식의 수열이다.
- 하지만 첫 번째, 두 번째 항은 앞의 2개의 숫자가 1이거나 없으므로 1로 고정된다.
  • N개 이지만 첫 번째, 두 번째 항은 1로 고정이므로 for문의 시작은 2부터 시작한다.
  • 배열[i] = 배열[i-2] + 배열[i-1]

 

⚠️ 주의사항


  • 첫 번째, 두번 째 항은 1 고정
  • 앞의 2개의 수를 합하여 더해야한다.

 

 

풀이


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Java_02_04 {

    public int[] solution(int N) {
        int answer[] = new int[N];

        int num = 1;
        answer[0] = answer[1] = 1;
        for (int i = 2; i < N; i++) {
            answer[i] = answer[i - 2] + answer[i - 1];
        }

        return answer;
    }

    public static void main(String[] args) throws IOException {

        Java_02_04 T = new Java_02_04();

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());

        for (int x : T.solution(N)) System.out.print(x +" ");
    }
}

출력 화면

Comments