Javaでこれをどうすればできますか?最後の桁が偶数の場合、数値が2で割り切れるかどうかを調べます。 (0,2,4,6,8)例:128 129は、最も右のビットは、ビット演算子をモジュロ演算子を使用しないJavaの偶数番号のテスト
論理実行し(用とを用いることにより、1、そのていないかどうかを確認
Javaでこれをどうすればできますか?最後の桁が偶数の場合、数値が2で割り切れるかどうかを調べます。 (0,2,4,6,8)例:128 129は、最も右のビットは、ビット演算子をモジュロ演算子を使用しないJavaの偶数番号のテスト
論理実行し(用とを用いることにより、1、そのていないかどうかを確認
ないが、あります例)
yourNumber & 1
は最下位ビットをチェックしてください:
boolean even = (x & 1) == 0;
はLSBだけ小数少なくともsignifiのためのように、偶数と奇数のため1
ため0
です数字がで割り切れる場合は、数字は0
です。
は&(ビット単位のAND)演算子は、第二の対応するビットを するために、その最初のオペランドの各ビットを比較し、ビット演算and
if((number&1) == 0)
ビット単位のAND演算子&
を使用しますオペランド。両方のビットが1の場合、結果の対応するビットは に設定されます。そうでない場合、 の対応する結果ビットが0(source)に設定されます。 バイナリ形式偶数で
はゼロに等しい最下位ビットを有しています。これを知って、&演算子を使って、それが偶数であるかどうかを調べることができます。
したがって、数値が..abcdyで、yが.abcdyよりもゼロの場合は.00001と比較されます。& ..00001もゼロで偶数です。
マイウェイ;)
パブリッククラス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);
}
}
}
Thats cool ..しかし、あなたが15〜20桁の数字を持つ場合、whileループが何回実行されますか? Perfomanceは吸う。まずは学ぶのが難しいが、より良いやり方を学ぶべきだ。あなただけでなく、一般的にはprogramme.rとして – Stunner
if((n|1)==n)
System.out.println("odd");
else
System.out.println("even");
理由:LSBが1であり、さらにそれ以外の場合は場合の数が奇数です。 n | 1が実行されると、奇数のLSBは同じままであり、結果の数は変更されず、偶数のLSBは1になり、番号が変更されます。
分割数を、あなたの元の数を取得する場合、答えを掛け、その後数は「でも」ない場合は、その後数は「奇数」
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");
}
}
}
です
import java.io.*;
import java.util.*;
public class CheckNumber{
public static void main(String... args)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the number to check even or odd");
int number=Integer.parseInt(br.readLine());
String temp=number+""; //convert number to string
char ch=temp.charAt(temp.length()-1); //get last character
temp=ch+"";
if(temp.equals("0") || temp.equals("2") || temp.equals("4") || temp.equals("6") || temp.equals("8")) //check last number is even
System.out.println("Number is even");
else
System.out.println("Number is odd");
}
}
@AV。'%を使用して回答を見つけることはできません。 ' - >タイトル。 –
より最適なビットテスト(ケース2の場合)の他に、整数除算も(2以外の場合は) 'n ==(n/2)* 2'となります。 –
そして*なぜ*モジュロ演算子を避けたいですか?まず第一に、コードは読みやすく、プログラマーの* intent *を記述する必要があるので、 'a%2 == 0'は' a&1 == 0 'よりも表現力があります。バイナリ表現。 – Heinzi