관련없는 다른 인터넷 포럼에서 주어진 숫자의 제곱근이 정수인지 확인하는 방법에 대한 질문이있었습니다. 지금은 그 자체로 사소한 숙제 문제이지만 모든 상황에서 순진한 접근법이 올바른지 궁금해지기 시작했습니다. 즉 의사에있다 :부동 소수점 반올림 오류로 인해 비 정수의 제곱근이 정수가 될 수 있습니까?
declare x, y as double
input x
y = sqrt(x)
if round(y) = y then
output "Is integer"
else
output "Isn't integer"
이 가능 이러한 x
를 입력하는 것입니다, x
자체가 하지만 sqrt(x)
하는 것 (A 다른 정수의 사각형이 또는 정수) 정수하지 것 부동 소수점 오류 때문에과 정수가 필요합니까?
네, 물론! 왜 내가 그걸 생각하지 않았을까? :) –