숫자가 짝수인지 홀수인지 확인
주어진 숫자가 짝수인지 홀수인지 어떻게 알 수 있습니까? 나는 오랫동안 오랫동안 이해하고 싶었습니다.
모듈러스 연산자를 사용할 수 있습니다. 정수인 경우 다음을 수행 할 수 있습니다.
if ( (x & 1) == 0 ) { even... } else { odd... }
낮은 비트는 항상 홀수로 설정되기 때문입니다.
if((x%2)==0)
// even
else
// odd
2로 나눌 때 나머지가 0이면 짝수입니다. %
나머지를 얻는 연산자입니다.
나머지 연산자 %는 숫자로 나눈 나머지를 제공합니다.
따라서 n % 2 == 0
n이 짝수이면 true이고 n이 홀수이면 false입니다.
모든 짝수는 10 진수인지 여부에 관계없이 2로 나눌 수 있습니다 (그러나 존재하는 경우 10 진수도 짝수 집 함). 따라서 왼쪽의 숫자 %
를 오른쪽의 숫자로 나누고 나머지를 반환하는 (모듈로) 연산자를 사용할 수 있습니다 .
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 솔루션을 사용하거나 다음을 수행 할 수 있습니다.-1
i%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);
}
}
최하위 비트 (가장 오른쪽)를 사용하여 숫자가 짝수인지 홀수인지 확인할 수 있습니다. 모든 홀수 숫자의 경우 맨 오른쪽 비트는 항상 이진 표현에서 1입니다.
public static boolean checkOdd(long number){
return ((number & 0x1) == 1);
}
이 다음 프로그램은 많은 수를 처리 할 수 있습니다 (20보다 큰 자릿수)
package com.isEven.java;
import java.util.Scanner;
public class isEvenValuate{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String digit = in.next();
int y = Character.getNumericValue(digit.charAt(digit.length()-1));
boolean isEven = (y&1)==0;
if(isEven)
System.out.println("Even");
else
System.out.println("Odd");
}
}
출력은 다음과 있습니다 ::
122873215981652362153862153872138721637272
Even
모듈러스 연산자를 사용할 수 있습니다. 더 쉬운 방법은 숫자가 짝수인지 홀수인지를 결정하는 가장 낮은 비트를 확인하는 것입니다. 코드는 다음과 가변적입니다.
public static void main(String[] args) {
System.out.println("Enter a number to check if it is even or odd");
System.out.println("Your number is " + (((new Scanner(System.in).nextInt() & 1) == 0) ? "even" : "odd"));
}
if / else 조건을 사용하지 않고 쉽게 수행 할 수있는 또 다른 방법 (양수와 음수 모두 가능) :
int n = 8;
List<String> messages = Arrays.asList("even", "odd");
System.out.println(messages.get(Math.abs(n%2)));
홀수 번호의 경우 표현식은 나머지로 '1'을 반환하여
messages.get (1) = 'odd'이므로 'odd'인쇄
그렇지 않으면 표현식이 '0'이 나올 때 'even'이 인쇄됩니다.
주어진 숫자의 계수가 0과 같으면 숫자는 홀수입니다. 다음은이를 수행하는 방법입니다.
public void evenOrOddNumber(int number) {
if (number % 2 == 0) {
System.out.println("Number is Even");
} else {
System.out.println("Number is odd");
}
}
package isevenodd;
import java.util.Scanner;
public class IsEvenOdd {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter number: ");
int y = scan.nextInt();
boolean isEven = (y % 2 == 0) ? true : false;
String x = (isEven) ? "even" : "odd";
System.out.println("Your number is " + x);
}
}
다음은 주어진 숫자가 짝수인지 홀수인지 확인하는 예입니다.
import java.util.Scanner;
public class EvenOdd
{
public static void main(String[] args)
{
int a;
System.out.println("Please enter a number to check even or odd:");
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
if(a % 2 == 0)
{
System.out.println("Entered number is an even number");
}
else
{
System.out.println("Entered number is an odd number");
}
}
}
글쎄, 같은 것을 결정하는 많은 방법이 있습니다. 주어진 숫자가 짝수 또는 홀수임을 찾는 더 많은 예제는 이 리소스를 참조하십시오 .
다음과 같이 할 수 있습니다.
boolean is_odd(int n) {
return n % 2 == 1 || n % 2 == -1;
}
이는 Java가 모듈로 연산에서 피제수 부호 인 왼쪽 n을 갖기 때문입니다. 따라서 음수 및 양수 배당금의 경우 모듈로에 부호가 있습니다.
물론 비트 연산은 더 빠르고 최적화되어 있습니다. 가독성을 위해 2 ~ 3 개의 짧은 단어로 코드 줄을 문서화하기 만하면됩니다.
다음은 전체 예입니다.
import java.text.ParseException;
public class TestOddEvenExample {
public static void main(String args[]) throws ParseException {
int x = 24;
oddEvenChecker(x);
int xx = 3;
oddEvenChecker(xx);
}
static void oddEvenChecker(int x) {
if (x % 2 == 0)
System.out.println("You entered an even number." + x);
else
System.out.println("You entered an odd number." + x);
}
}
참고 URL : https://stackoverflow.com/questions/7342237/check-whether-number-is-even-or-odd
'IT' 카테고리의 다른 글
PHP에서 문을 어기는 방법은 무엇입니까? (0) | 2020.07.18 |
---|---|
소스 이미지가없는 경우 대체 이미지를 표시하는 방법은 무엇입니까? (0) | 2020.07.18 |
scanf를 사용하여 공백을 어떻게 입력 할 수 있습니까? (0) | 2020.07.18 |
점이 너무 많은 산점도 (0) | 2020.07.18 |
NSAttributedText에 HTML 파싱-글꼴을 설정하는 방법? (0) | 2020.07.18 |