オリジナルタイトルリンク:
https://leetcode-cn.com/problems/sqrtx/
トピック:
int型のsqrt(int型x)関数を実現します。
計算し、xが負でない整数であり、xの平方根を返します。
戻り型が整数であるため、結果の整数部は、小数部を切り捨て保持します。
例1:
入力:4 出力:2
例2:
入力:8 出力:2 説明:8平方根である2.82842 ...は、 戻り値の型が整数であることから、小数部を切り捨てて表示しております。
アイデア:
バイナリ検索を使用してください。
これ以上のそれの半分以上の最大値よりも、独自の広場の数、そして確かにないよりので、条件は半ば²のためのx≤書き込むことができると判断されます。書かれた範囲の場合があるので、決意条件は、中間≤X /中間のように書くことができます。
コード:
INT mySqrt(INT X){ int型の L = 0、R = X。 一方、(L < R) { int型ミッド=(長い 長)L + R + 1 >> 1 。 もし(MID <= X / MID)L = ミッド。 他の R =中旬- 1 。 } 戻りL。 }