Javaでこれを行うにはどうすればよいですか?最後の桁が偶数の場合、数値が 2 で割り切れるかどうかを調べます。(0,2,4,6,8) 例: 128 はあり、129 はありません
7 に答える
ビット演算を使用するand
if( (number&1) == 0)
ビットごとの AND 演算子 &
& (ビットごとの AND) 演算子は、最初のオペランドの各ビットを 2 番目のオペランドの対応するビットと比較します。両方のビットが 1 の場合、結果の対応するビットが 1 に設定されます。それ以外の場合は、対応する結果のビットが 0 ( source ) に設定されます。
バイナリ形式では、偶数の最下位ビットはゼロに等しくなります。これを知っていて、 & 演算子を使用すると、偶数かどうかを調べることができます。
したがって、数値 ..abcdy を取り、..abcdy & ..00001 よりも 0 の場合は ..00001 と比較するため、偶数になります。
ビットごとの演算子を使用して、右端のビットが 1 であるかどうかを確認します。
論理 AND を実行します (たとえば)
yourNumber & 1
最下位ビットを確認します。
boolean even = (x & 1) == 0;
LSB は偶数の場合0
と1
奇数の場合です。10 進数の場合と同様に、最下位桁は0
で割り切れる場合10
です。
if((n|1)==n)
System.out.println("odd");
else
System.out.println("even");
理由: LSB が 1 の場合、数字は奇数であり、それ以外の場合は偶数です。n|1 を実行すると、奇数の LSB は同じままなので、結果の数値は変更されませんが、偶数の LSB は 1 になり、数値が変更されます。
私のやり方 ;)
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);
}
}
}
数を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");
}
}
}