- 422 名前:デフォルトの名無しさん mailto:sage [03/03/13 15:53]
- >>419
こんなんでどうっすか。 /** * 整数の平方根を返します。端数は切り捨てられます。 * @param value intの値 * @return 引数の平方根 */ public static int sqrt(int value) { // 相加相乗の不等式(√ab≦(a+b)/2 ⇒ √a≦(a+1)/2)の右辺を初期値に選んで、 // ニュートン法で収束させる。 int x0 = value; int x1 = (value + 1) >> 1; while (x0 > x1) { x0 = x1; x1 = (x0 + value / x0) >> 1; }; return x0; }
|

|