9

Javaでこれを行うにはどうすればよいですか?最後の桁が偶数の場合、数値が 2 で割り切れるかどうかを調べます。(0,2,4,6,8) 例: 128 はあり、129 はありません

4

7 に答える 7

16

ビット演算を使用するand

if( (number&1) == 0)

ビットごとの AND 演算子 &

& (ビットごとの AND) 演算子は、最初のオペランドの各ビットを 2 番目のオペランドの対応するビットと比較します。両方のビットが 1 の場合、結果の対応するビットが 1 に設定されます。それ以外の場合は、対応する結果のビットが 0 ( source ) に設定されます。

バイナリ形式では、偶数の最下位ビットはゼロに等しくなります。これを知っていて、 & 演算子を使用すると、偶数かどうかを調べることができます。

したがって、数値 ..abcdy を取り、..abcdy & ..00001 よりも 0 の場合は ..00001 と比較するため、偶数になります。

于 2012-12-08T21:22:10.047 に答える
6

ビットごとの演算子を使用して、右端のビットが 1 であるかどうかを確認します。

論理 AND を実行します (たとえば)

yourNumber & 1
于 2012-12-08T21:20:27.677 に答える
6

最下位ビットを確認します。

boolean even = (x & 1) == 0;

LSB は偶数の場合01奇数の場合です。10 進数の場合と同様に、最下位桁は0で割り切れる場合10です。

于 2012-12-08T21:21:52.323 に答える
2
if((n|1)==n)
  System.out.println("odd");
else
  System.out.println("even");

理由: LSB が 1 の場合、数字は奇数であり、それ以外の場合は偶数です。n|1 を実行すると、奇数の LSB は同じままなので、結果の数値は変更されませんが、偶数の LSB は 1 になり、数値が変更されます。

于 2015-12-23T11:47:45.897 に答える
0

私のやり方 ;)

public class Even_Odd {

/**
 * @param args
 */
public static void main(String[] args) 
{
    int val=550;
    // TODO Auto-generated method stub
    while(val>=0)
    {
        if(val==1)
        {
            System.out.println("Odd Number");
        }
        else if(val==0)
        {
            System.out.println("Even Number");
        }

            val=val-2;
        //  System.out.println(val);

    }
}

}

于 2013-12-23T06:44:51.140 に答える
0

数を2で割り、その答えに2を掛けます。元の数が得られた場合、その数は偶数」になります。そうでない場合、その数は「奇数」になります。

public class EvenOrOdd
{
    public static void main(String args[])
    {
        int value = 129;

        if((value/2)*2==value)
        {
            System.out.println("The Given Number \""+value+"\" is Even");
        }
        else
        {
            System.out.println("The Given Number \""+value+"\" is Odd");
        }
    }
}
于 2016-08-12T06:11:03.513 に答える