2010-05-09 2 views
0

Google 코드 잼의 자격 라운드에 참가하기 바로 전날. 이것은 온라인 코딩 콘테스트의 첫 경험입니다. 매우 즐거웠다.배정도 값

내가 해결할 수있는 세 가지 문제가있었습니다. 그러나 문제 중 하나에서 나는 정말로 거대한 가치들을 가지고 일하도록 요구 받았다. 나는 자바 녀석이고 나는 두 배 변수로 갈 것이라고 생각했다. 불행히도, 이중의 정밀도는 충분하지 않았습니다. 더구나, 나는 닫는 단계에서 이것에 참석했다. 나는 그것에 많은 것을 파낼 시간이 없었다. (1을 풀면 다음 단계로 나아갈 수있다.)

제 질문은 두 번보다 큰 정밀도 메커니즘을 갖는 방법입니다. 코딩 경험이 Java로되어 있으므로 해당 라인에서 대답 해 주시면 좋을 것입니다.

감사

답변

5

자바는 임의 정밀도 연산에 대한 BigDecimall있다 - 그러나 그것은 훨씬, 훨씬 더 느린 double를 사용하는 것보다입니다.

그것은 문제의 문제는 예를 들어, 대수 변환과를 사용하여 soved 있어야했다 가능성도

로그와 함께 작업하십시오.

1

당신은 BigDecimal 같은 임의 정밀도 번호를 사용할 수 있습니다 - 당신이 지정으로 느리지 만 아니라 정확한입니다.

2

문제가 정수가 필요한 경우 BigInteger를 사용할 수 있습니다. 63 비트 정밀도를 53 비트로 (양수 가정)와 비교

또한 긴 더블 정수보다 약간 더 좋다.

+0

Yah .. int -> long -> BigInteger, float -> double -> BigDecimal – bwawok