おすすめのモーニング・朝食メニューを教えて!

全くの初心者です・・・。

private boolean even(int x) {
return ( ) ;
}

としたいのですが、( )の中身が分かりません。
普通は i % 2 == 0 となると思うのですが、
2で整数除算したあと2を乗算して
元の整数に一致するかどうかで判定したいのです。
よろしくお願いします。

A 回答 (3件)

判定方法はいろいろあると思いますが


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;
}

}
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/01/26 20:51

もう答えは出てますが、ちょっと違う方法書いておきます。



整数型の値が奇数か偶数かは x & 1 でも判定できます。これはそのままだと奇数の時に結果が1になります。(x & 1) == 0 とすると偶数の時に true の結果を返す式になります。

ビット演算を使うということですが、2進数は1桁で0と1の2通りの状態しか表せないので1をANDして一番下の桁の状態を取り出せばそのままそれが奇数か偶数かを表す値になります。(尚、この計算は値が負だったとしても使えます。Javaの整数型の負の値は2の補数で表すことが保証されているためです)。

p.s.
だいたいどの言語でもビット演算で判定した方が高速だと思います。最適化がどの程度掛かるかで変わりますが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/01/26 20:52

int(i/2)*2==iまたはi-int(i/2)*2==0


でよいかと。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/01/26 20:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報