[java] 숫자가 짝수인지 홀수인지 확인

주어진 숫자가 짝수인지 홀수인지 어떻게 알 수 있습니까? 나는 이것을 오랫동안 오랫동안 이해하고 싶었고 아무데도 얻지 못했습니다.



답변

모듈러스 연산자를 사용할 수 있지만 속도가 느릴 수 있습니다. 정수인 경우 다음을 수행 할 수 있습니다.

if ( (x & 1) == 0 ) { even... } else { odd... }

낮은 비트는 항상 홀수로 설정되기 때문입니다.


답변

if((x%2)==0)
   // even
else
   // odd


답변

2로 나눌 때 나머지가 0이면 짝수입니다. %나머지를 얻는 연산자입니다.


답변

나머지 연산자 %는 숫자로 나눈 나머지를 제공합니다.

따라서 n % 2 == 0n이 짝수이면 true이고 n이 홀수이면 false입니다.


답변

모든 짝수는 10 진수인지 여부에 관계없이 2로 나눌 수 있습니다 (그러나 존재하는 경우 소수도 짝수 여야 함). 따라서 %왼쪽의 숫자를 오른쪽의 숫자로 나누고 나머지를 반환하는 (모듈로) 연산자를 사용할 수 있습니다 .

boolean isEven(double num) { return ((num % 2) == 0); }


답변

나는 추천 할 것이다

Java Puzzlers : Joshua Bloch와 Neal Gafter의 함정, 함정 및 코너 케이스

숫자가 홀수인지 확인하는 방법에 대한 간단한 설명이 있습니다. 첫 번째 시도는 @AseemYadav가 시도한 것과 비슷한 것입니다.

public static boolean isOdd(int i) {
     return i % 2 == 1;
}

그러나 책에서 언급했듯이 :

나머지 연산이 0이 아닌 결과를 반환하면 왼쪽 피연산자와 동일한 부호를 갖습니다.

일반적으로 음수가 홀수 인 경우 대신에 결과를 1얻습니다 . 따라서 @Camilo 솔루션을 사용하거나 다음을 수행 할 수 있습니다.-1i%2

public static boolean isOdd(int i) {
     return i % 2 != 0;
}

그러나 일반적으로 가장 빠른 솔루션은 위의 @lucasmo write와 같은 AND 연산자를 사용하는 것입니다.

public static boolean isOdd(int i) {
     return (i & 1) != 0;
}

@Edit 그것은 또한 Math.floorMod(int x, int y);배당금을 마이너스로 다루는 것이 좋으나 -1제수가 마이너스이면 돌아올 수도 있음 을 지적 할 가치가 있습니다.


답변

양수 또는 음수에 적용

int start = -3;
int end = 6;

for (int val = start; val < end; val++)
{
    // Condition to Check Even, Not condition (!) will give Odd number
    if (val % 2 == 0)
    {
        System.out.println("Even" + val);
    }
    else
    {
        System.out.println("Odd" + val);
    }
}