솜이의 데브로그

백준 2748번 ) 피보나치 수 2 (java) 본문

Algorithm/백준

백준 2748번 ) 피보나치 수 2 (java)

somsoming 2022. 2. 24. 02:07

https://www.acmicpc.net/problem/2748

 

2748번: 피보나치 수 2

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

 

문제

 

풀이

import java.io.*;

public class BOJ_2748 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        long n1 = 0, n2 = 1;
        long sum = 1;
        for(int i = 1; i < n; i++){
            sum = n1+n2;
            n1 = n2;
            n2 = sum;
        }

        System.out.println(sum);
    } 
}

 

피보나치는 재귀와 반복문 두가지의 방법으로 사용할 수 있다.

학교 수업때 많이 배워서 재귀는 효율적이지 못하다고 들어 반복문으로 풀었다.

 

 

주의할 점

  • input이 90까지 주어지므로 sum 은 long 타입으로 선언해야한다.
  • int로 선언할 시 잃는 값이 생기기 때문에 답이 틀리다고 나오게된다.
  • input 값 확인 후, 타입 선언에 주의하자!