Tag: 完美平方

什么是一个很好的algorithm来确定一个input是一个完美的平方?

可能重复: 最快的方法来确定一个整数的平方根是一个整数 怎么看一个数字是一个完美的广场 ? bool IsPerfectSquare(long input) { // TODO } 我正在使用C#,但这是语言不可知的。 奖金分明确和简单(这不意味着代码高尔夫)。 编辑:这比我预期的要复杂得多! 事实certificate,双精度的问题体现在两个方面。 首先,Math.Sqrt需要一个长度不能精确保持的双倍(感谢Jon)。 其次,当你有一个巨大的,接近完美的平方时,双精度会损失小的值(.000 … 00001)。 例如,我的执行失败Math.Pow(10,18)+1(我的报告是正确的)这个testing。