lightseller   7년 전

문제에서 m이 n보다 작다고 했으니 for문에는 m to n으로 들어가야 하겠고

sqrt % 1로 소수점 자리 유무 판별도 되는 걸 확인했는데 통과를 못 하네요...

zlzmsrhak   7년 전

floating point error 때문에 22번째 줄과 같이 비교하는 것은 매우 위험합니다.

그래서 정확한 비교 연산을 하기 위해서는 integer 변수로 하는 것이 좋습니다.

int sqrt = Math.pow(i, 0.5) + 0.5;

if sqrt*sqrt == i then ..

lightseller   7년 전

1부터 100까지 넣고 디버그 돌리면서 봤을 때는 에러가 없는 줄 알았는데 정말 원인이 부동소수점 오류였네요...

앞으로 조심해야겠습니다 감사합니다!

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