▷문제 : https://www.acmicpc.net/problem/4150
Note
피보나치 수를 구하는 알고리즘을 먼저 알아야 하는데 (재귀)피보나치 수열(Fibonacci Sequence) 를 참고하면 된다.
그러나 이 문제는 N번째 피보나치수를 구하는것 외에도 정수형으로 처리할 수 있는 크기가 넘는 수를 어떻게 덧셈 연산을 구현할 것인가? 이다.
백준 10757(문자열조작) 에서 큰수에 대해 덧셈 연산을 어찌 해야 하는지 살펴보았으니 여기에서는 자바에서 제공하는 BigInteger 클래스를 사용하여 문제의 답을 구하도록 하였다.
그러나 이 문제는 N번째 피보나치수를 구하는것 외에도 정수형으로 처리할 수 있는 크기가 넘는 수를 어떻게 덧셈 연산을 구현할 것인가? 이다.
백준 10757(문자열조작) 에서 큰수에 대해 덧셈 연산을 어찌 해야 하는지 살펴보았으니 여기에서는 자바에서 제공하는 BigInteger 클래스를 사용하여 문제의 답을 구하도록 하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(fib(Integer.parseInt(br.readLine())));
}
public static BigInteger fib(int n) {
BigInteger a = BigInteger.valueOf(1);
BigInteger b = BigInteger.valueOf(1);
BigInteger c ;
for (int j=2 ; j <= n ; j++) {
c = a.add(b);
a = b;
b = c;
}
return (a);
}
}
Colored by Color Scripter
|
'코딩테스트(Coding Test) > 백준(Baekjoon OJ)' 카테고리의 다른 글
백준 10757 - 큰수 (문자열조작) (0) | 2019.07.03 |
---|---|
백준 9442 - Sort Me (정렬, 룩업테이블) (0) | 2019.07.03 |
백준 2947 - 나무조각 (버블정렬) (0) | 2019.07.03 |
백준 7785 - 회사에 있는 사람 (0) | 2019.06.28 |
백준 1620 - 나는야 포켓몬 마스터 이다솜 (0) | 2019.06.28 |