temp   7년 전

자바 빅데시멀 사용하면 금방 풀릴줄알았는데 60퍼에서 자꾸 오답이 나네요...

그 이유가 뭘까요? ㅠㅠ

그냥 라이브러리 쓰는데 오답이 왜날까요...

devetude   7년 전

문제의 예시인 '0.1 10'을 입력 값으로 넣으실 경우, 자바의 기본 출력 포멧으로 인하여 다음과 같이 '1E-10' 지수 형태로 출력이 됩니다!

따라서, 마지막 11번째 줄 출력부 'n2' 부분을 'n2.toPlainString()'로 변경하시면, 정답인 '0.0000000001'가 나오게된답니다.

'toPlainString()' 메소드를 이용하시면 있는 그대로의 값을 출력해주게 되는 원리지요!


cf) 추가로...

위 코드는 a를 b번 곱하시는 소스로 작성하셨는데, 다음과 같이 BigInteger의 지수 승을 구할 수 있는 메소드인 'pow(int n)' 메소드를 이용하시면 더 간결하게 작성이 가능합니다.

제가 작성한 코드를 첨부하니 참고해주세요.


댓글을 작성하려면 로그인해야 합니다.