チャレンジ
つまり、平方数や他の形状の数を扱う多くの課題がある一方で、単純に尋ねる課題はないようです。
整数n
(where n>=0
)が入力として与えられるn
と、完全な正方形の場合は真の値を返し、そうでない場合は偽の値を返します。
ルール
- 標準のI / Oルールで許可されている限り、合理的で便利な手段で入力を取得できます。
- 選択した言語がネイティブに処理できる以上の入力を処理する必要はなく、浮動小数点の不正確さを引き起こすこともありません。
- 出力は、2つの一貫した真実/偽の値(たとえば、
true
またはfalse
、1
または0
)のいずれかでなければなりません。入力が完全な正方形の場合は真実、そうでない場合は偽です。 - これはコードゴルフなので、バイト数が最も少なくなります。
テストケース
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
、doubleで表現できます。それでも納得できない場合は、バイナリデータを取得0100001101001111111111111111111111111111111111111111111111111111
し、IEEE-754倍精度浮動小数点数として解釈し、取得する値を確認してください。
18014398509481982
(2**54-2
)を提供します。これは doubleで表現可能であり、使用sqrt
する回答を失敗させます。