在另一个不相关的 Internet 论坛上,有人询问如何检查给定数字的平方根是否为整数。现在,这本身就是一个微不足道的家庭作业问题,但我开始怀疑这种幼稚的方法是否在所有情况下都是正确的。也就是说,在伪代码中:
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)
成为整数?