새소식

알고리즘 문제풀이/BOJ

[백준 온라인 저지(BOJ)] 10826번 피보나치 수 4 자바(java) 풀이 ( BigInteger 이용)

  • -

안녕하세요 호호만두에요

이번에는 백준 온라인 저지(BOJ)의 10826번 피보나치 수4를 자바로 풀어봅시다

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

 

10826번: 피보나치 수 4

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는

www.acmicpc.net

 

이 문제의 n이 최대 10000이라는 것에 주의해야되요

작아 보이는 수 같지만 피보나치 수를 구하면 저어어어엉말 커져요

출력해보니까 대충 2000자리가 넘어요

그래서 long 형으로 구하게 되면 overflow나서 이상한 수가 출력되요

(참고로 64bit long형 max 값은9223372036854775807대 충 920경....

그래서 자바에서는 BigInteger를 이용하여 간단하게 풀 수 있습니다

이는 java.math.BigInteger 를 import해서 사용하실 수 있습니다

 

1. n을 입력받는다

2. BigInteger 배열을 초기화 한다(i번째 idx : i번째 피보나치 수)

3. for문을 순회하며 이 전 두수를 더해주면서 다음 피보나치 수를 구해나가며 배열에 저장

코드는 아래를 참고해주세요!!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.