私の仲間のコーダー!ある配列の要素が別の配列の要素数であるかどうかを調べる
これは私が現在解決しようとしている問題です。
a = new int[] {11, 12, 13, 14};
b = new int[] {121, 144, 169, 200};
私の仕事は2つの配列を比較し、121が11の平方根であるかどうかをチェックすることです。 144は12平方です。それぞれの
- は、配列aにint型とそれぞれに配列bのint、
- チェックint型ならば、私はその後、自分自身を掛け、Bで== int型jを、見返りに:私の擬似コードだなど 本当。
- それ以外の場合はfalseを返します。
マイコード:
public static boolean squared(int[] a, int[] b) {
for (int i : a)
for (int j : b)
if (b[j] == a[i]*a[i])
return true;
return false;
}
}
このアルゴリズムのロジックは私に公正なようです。しかし、それはテストに合格しません(私はそれをオンラインで解決しています)。私がnewbyなので、経験豊富なプログラマーが何を言っているのだろう、なぜテストに合格しないのだろうか? 121 = 11 * 11の場合はtrueを、200 = 14 * 14の場合はfalseを出力するように、擬似コードとコード自体を変更する必要がありますか? ありがとうございます。
UPD.:Thank you everyone!問題は解決された。私は熟練したコーダーにはっきりと見える論理的なミスを犯したことに同意します。私は私の質問が下降表示されているのを見ても、それは本当に私がエラーを理解するのに長い時間を要し、私は(私に)質問する価値があったと信じています。
コードでは、 'i'は' a'配列のインデックスではなく、 'j'の場合と同じです – Titus
ありがとう、アンドリュー、今どこが間違っているのか分かります。 – mohican93
私はあなた自身でこれを解決できると確信しています。比較の直前に要素を印刷するとどうなりますか? – quamrana