私は2つの数字の間の平方根の数を見つけるためにこの関数を書いています。2つの数字の間の平方根の数を見つけよう
static int FindRoot(int no1, int no2) {
int res = 0;
for (int x = no1; x <= no2; x++) {
for (int y = 1; y <= no2; y++) {
if (y * y == x)
res++;
}
}
return res;
}
これは問題なく動作しますが、パフォーマンスについては考えていました。 この場合、inner For loop
は開始位置(1)から実行されるため、誰かがメソッドに大きな数値範囲を渡すと時間がかかります。
だから、私の質問は:
私はより良いパフォーマンスでこれを見つけることができる他の方法はありますか?私が使用することはできません
PS- Math.sqrt()
機能
あなたの関数は完全な平方根に対してのみ機能しますか? –
ルールを回避し、平方根を計算するために[Newton's Method](https://en.wikipedia.org/wiki/Newton%27s_method#Square_root_of_a_number)を実装することもできますが、それはおそらくあなたが望むものではありません:P – SamYonnou
私はそれを望んで、それは私がテストしたいくつかのケースのために働いています。見つけ出すのに何か問題がありますか? – Trying