에서 flip
이 루프 방법 while(roll<n){
,
여기 당신은 증가하지 않는 roll
변수를.
이것은 내가 보는 한 가지 문제입니다.
flip
방법 의 논리를 확인하십시오 . 나에게 옳지 않은 것 같습니다.
두 가지 문제가 있습니다. 첫째, flip
전혀 증가하지 않기 때문에 에서 무한 루프가 있습니다 roll
. 그것을 증가시킵니다.
둘째,이 줄에 정수 나눗셈이 있습니다.
total += elapsed/1000000;
Java에서 두 개의 int
s를 나누면 결과가되어야 int
하므로 여기에서 많은 0을 얻을 수 있습니다. double
리터럴 또는 캐스트 elapsed
를 사용하여 double
부동 소수점 산술을 수행합니다.
total += elapsed/1000000.0;
또는
total += (double) elapsed/1000000;
-------------------이미 언급 한 무한 루프 및 분할 문제 외에도 인쇄 라인을 더 깨끗하게 만들고 싶다면 BigDecimal
복식을 반올림 하는 데 사용 하는 것이 좋습니다 .
String line = n+"\t"+ BigDecimal.valueOf(average).setScale(5, BigDecimal.ROUND_HALF_UP) + "\t"+ BigDecimal.valueOf(Math.log(average)).setScale(5, BigDecimal.ROUND_HALF_UP);
출처
https://stackoverflow.com/questions/22050336