2014-12-15 1 views
0

이미 숫자가 짝수인지 아니면 홀수인지를 찾는 방법이 있다는 것을 알고 있습니다. (What is the fastest way to find if a number is even or odd?) 그러나 Math.Even 또는 Math.Odd와 같은 C# 함수가 있는지 궁금합니다. 계수를 사용하여이를 수행하는 유일한 방법은 무엇입니까?C#을 사용하여 숫자가 짝수 또는 홀수인지 찾는 방법은 무엇입니까?

(나는이 바보 같은 질문 같은 소리로 들리 겠지만 나는 C#에서이 작업을 수행하는 기능을 내장 있다는 것을 선생님 내기, 그는이없는 주장 ...)

+1

아직 훑어 본 적이 없다면 내기를하지 않아도됩니다. 나는 .NET 프레임 워크 내에 (언어 기능이 아닌) 그러한 메소드가 존재하는지의 여부를 가정합니다 : 아니오, 아는 곳은 아닙니다. –

+0

실제로 저는 약간의 조사를 했었습니다. 방문한 사이트 중 하나의 링크도 제공했습니다. –

+1

내가 아는 사람이 하나도 없다. 죄송합니다. – JayDev

답변

9

부정 행위로 간주 될 수 있지만 BigInteger를 사용하는 경우 IsEven 메서드가 있습니다.

value % 2 == 0; 

참조 :

실제로
+6

이것은 그가 실제로 그의 내기를 이기게 할 것이다;) –

+2

@LucasTrzesniewski : 만약에 무엇이라면, 그들은 둘 다 좋은 웃음을 지니고 친구가 될 수있다. :) – Neolisk

+1

달콤한! 감사 :) –

4

이 더 있습니다 메서드를 .NET에서 그냥 %2==0 호출합니다. 이러한 단순한 방법은 대체로 문자가 이고 문자가 인 경우 사용자를 대신하여 구현할 가치가 없습니다.

정말로 원하는 경우이 계산을 수행하기위한 고유의 명명 된 메소드를 작성할 수 있습니다.

+0

하하, 아직 그들은 여전히 ​​++입니다. = P –

+0

@IanWise 증가 연산자는 단지 2 문자 이상을 저장합니다. 많은 경우 그것은 꽤 큰 차이 일 수 있습니다. 증분되는 참조가 부작용이있는 복합 표현식이 될 수 있지만 한 번만 실행된다는 사실은 복제 작업을 수행하는 데 걸릴 수 있습니다. – Servy

+0

@IanWise Incrementation은 "eve/odd 확인"보다 더 많은 장소에서 사용할 수 있습니다. 특히 반복되는 변수 이름이 길면 충분히 깊게 잠수 할 수 있습니다. 그러면이 상황을 빠르게 알 수 있습니다. – David

1

, 일부 다른 방법이 메소드를 호출하면 동등하다 MSDN에 명시된 바와

확인하는 것은 번호입니다. %을 사용할 때, 1과 비교하면 모든 음의 정수에 대해 잘못된 답을 줄 수 있기 때문에 위에서 설명한대로 값을 0으로 검사해야합니다.

bool is_odd(int n) { 
    return n % 2 == 1; //this method is incorrect for negative numbers 
} 
bool is_odd(int n) { 
    return n % 2 != 0; 
} 

두 번째 인기있는 방법은 낮은 비트는 항상 홀수에 설정 될 것이라는 사실을 사용

bool is_odd(int n) { 
    return x & 1 != 0; 
} 

이 방법은 아래에 설명된다. 그리고 많은 사람들이 생각하는 경향이 있습니다. 숫자의 첫 번째 비트를 검사하는 것이 빠르다. C#에서는 사실이 아닙니다. 속도는 거의 동일하며 모듈러스는 더 빨리 작동합니다!
글쓴이가 숫자가 짝수인지 확인하기 위해 모든 대중적인 방법을 시도했으며 페이지 맨 아래에 설명 된 표를 보도록 권장하는 article이 있습니다!

관련 문제