<Algorithm> 47. 2748번 피보나치2
by BFine반응형
1. 2748번 피보나치2
BigInteger 문제, 처음에는 단순히 int로 접근해서 풀었는데 틀렸습니다가 나왔다. 50번째 피보나치를 할 경우 int 범위가 넘어버렸다.
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; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); fibo(N); } public static void fibo(int N) { BigInteger dp[] = new BigInteger[N+1]; BigInteger big; if(N == 0 || N ==1) { System.out.println(N); return; } dp[0] = BigInteger.valueOf(0); dp[1] = BigInteger.valueOf(1); for(int i = 2; i < N + 1 ; i ++) { big = dp[i - 1]; big = big.add(dp[i - 2]); dp[i] = big; } System.out.println(dp[N]); } } | cs |
반응형
'공부(2018~2019) - 스킨변경전 > Algorithm' 카테고리의 다른 글
<Algorithm> 49. 1197번 최소 스패닝 트리(Kruskal & prim) (0) | 2018.08.12 |
---|---|
<Algorithm> 48. 1717번 집합의 표현 (0) | 2018.08.12 |
<Algorithm> 46. 2252번 줄세우기 (0) | 2018.08.11 |
<Algorithm> 45. 14502번 연구소 (0) | 2018.08.10 |
<Algorithm> 44. 5014번 스타트링크 (0) | 2018.08.10 |
블로그의 정보
57개월 BackEnd
BFine