在另一個不相關的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)
會和整數,因爲浮點錯誤?
是的,當然!我爲什麼沒有想到它? :) –