整数の足し算と引き算だけで整数の平方根を計算するJavaのプログラムを解説します。ここで紹介する平方根の計算は、与えられた整数の平方根の整数部を求めるもので小数点以下は切り捨てです。ここから平方根を求める方法について説明します。下の表を見てください。左の数値が平方根の解で、真ん中が平方根の解を持つ整数を全て列挙したものです。その個数を一番右の平方根の解を持つ整数の個数に書いています。この表から平方根の解が1つ増えると平方根の解を持つ整数の個数が2つ増えることがわかります。11よって、平方根を求めようとする数値から平方根の値を持つ整数の個数の値、3,5,7,9,・・・を順番に引いていき、0以下になった回数が求める平方根の値となります。具体的な数値で確かめてみましょう。2-9=-7となります。4回目の計算でマイナスになったので平方根は4になります。以下が、このアルゴリズムを実現したソースコードです。SqrtInt0から200の平方根を計算した結果を表示します。:46の平方根=647の平方根=648の平方根=649の平方根=750の平方根=7ここからは、このソースコードを上から順番に解説していきます。{クラス名を、SqrtIntとしています。)整数の平方根を戻すメソッドをsqrt_intgerを作っています。num;与えられたnumが0以下の場合、numを返しています。マイナス値の平方根は求められないので元の値numを返しています。このメソッドを呼び出した結果、戻り値がマイナスの場合にエラーとして処理できるようにしています。3;平方根が1になる整数の個数を変数cに代入しています。1;処理回数を格納した変数countに1を代入しています。{while文で無限ループを作っています。count;numからcを引いた後、numが0以下かどうかをif文で調べ、0以下であればbreak文でwhile文を終了させます。変数numが0より大きい値であれば、cに2を足し、countに1を足します。}0から50までの平方根を表示しています。この方法は、パソコンでの小数点計算に時間がかかっていた時代に使っていた平方根計算のアルゴリズムの1つで、整数の足し算と引き算だけで平方根の高速計算を実現していました。結果の精度は低いので、あまり精度を必要といないプログラムで使われていました。現在では実数計算は速いのでMath.sqrtメソッドを使ってください。