トピックス要件:
int型のsqrt(int型x)関数を実現します。
計算し、xが負でない整数であり、xの平方根を返します。
戻り型が整数であるため、結果の整数部は、小数部を切り捨て保持します。
ソリューション:
最初の反応は、取得される可能性があり後:さらにこの数よりもデジタルの半分の正方形は確かに大きいので、0との間のトラバーサルは、半追加する:この数よりも少ない数の各々の正方形、プラストラバーサルを横断するとき;そうでなければ、インデックス除去全体の平方根である一つ。
しかし、ときに、この最後のテスト、間違っていることが、超大量に直面したが、今回は、複雑度の高い横断するとき。
改良された方法は次のとおりです。二分法!
初期設定:左マージンは0、半分プラス1桁の右側の境界線です。
値を取ります!値がそれ以外の場合は、大きな数字がオーバーフローする、long型として宣言され、ここで値が全体的にではなく、全体で取るべきか、無限ループに入りますだと、ここで注意してください!!!