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 값 확인 후, 타입 선언에 주의하자!