挑战
因此,嗯,看来,尽管我们面临着很多挑战,需要处理平方数或其他形状的数,但是我们没有一个简单地问:
给定一个整数n
(where n>=0
)作为输入,如果n
是完美平方,则返回真实值,否则返回假值。
规则
- 只要标准I / O规则允许,您可以通过任何合理,方便的方式进行输入。
- 您不需要处理的输入量不能超过您选择的语言可以处理的输入量,也不会导致浮点数错误。
- 输出应该是两个一致truthy / falsey值(例如,一个
true
或false
,1
或0
) - truthy如果输入的是一个完美的正方形,falsey如果它不是。 - 这是代码高尔夫球,因此最低字节数为准。
测试用例
Input: 0
Output: true
Input: 1
Output: true
Input: 64
Output: true
Input: 88
Output: false
Input: 2147483647
Output: false
2**54-2
,至少在JavaScript中,它仍然可以安全地处理两倍以上的问题18014398509481982 > 9007199254740991
2**54-2
在JS控制台中输入内容,然后比较您得到的内容18014398509481982
(准确的值)。JS输出精确值,因此2**54-2
可以用双精度表示。如果那仍然不能使您信服,请获取二进制数据0100001101001111111111111111111111111111111111111111111111111111
,将其解释为IEEE-754双精度浮点数,然后查看得到的值。
18014398509481982
(2**54-2
),它是可表示用双,并导致答案在使用sqrt
失败。