• ベストアンサー

偶数奇数の判定

全くの初心者です・・・。 private boolean even(int x) { return ( ) ; } としたいのですが、( )の中身が分かりません。 普通は i % 2 == 0 となると思うのですが、 2で整数除算したあと2を乗算して 元の整数に一致するかどうかで判定したいのです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • isi0611
  • ベストアンサー率34% (46/134)
回答No.2

判定方法はいろいろあると思いますが aquarinさんが言ってるのはこういうこと ですかね?? public class Even { public static void main(String arg[]){ System.out.println(even(12)); } private static boolean even(int x) { return (x/2)*2 == x; } }

aquarin
質問者

お礼

丁寧にありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

もう答えは出てますが、ちょっと違う方法書いておきます。 整数型の値が奇数か偶数かは x & 1 でも判定できます。これはそのままだと奇数の時に結果が1になります。(x & 1) == 0 とすると偶数の時に true の結果を返す式になります。 ビット演算を使うということですが、2進数は1桁で0と1の2通りの状態しか表せないので1をANDして一番下の桁の状態を取り出せばそのままそれが奇数か偶数かを表す値になります。(尚、この計算は値が負だったとしても使えます。Javaの整数型の負の値は2の補数で表すことが保証されているためです)。 p.s. だいたいどの言語でもビット演算で判定した方が高速だと思います。最適化がどの程度掛かるかで変わりますが。

aquarin
質問者

お礼

そんなやり方もあるのですね。 参考になりました、ありがとうございました!

すると、全ての回答が全文表示されます。
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

int(i/2)*2==iまたはi-int(i/2)*2==0 でよいかと。

aquarin
質問者

お礼

それで良いみたいですね^^; ありがとうございました!

すると、全ての回答が全文表示されます。

関連するQ&A