Problem1540--5252 자네는 비트 마스터인가?

1540: 5252 자네는 비트 마스터인가?

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 4  Solved: 4
[Submit] [Status] [Web Board] [Creator:]

Description

32비트 정수 a, b에서, if, switch 없이 오직 비트연산자만으로 condition ? a : b를 구현해보세요.

삼항연산자: condition이 true일 때 a, false일 때 b로 평가되는 연산자
사용 가능 연산자: &, |, ^, ~, <<, >>, >>>
>>> 는 논리 오른쪽 시프트 연산자로 부호를 무시하고 0으로 채웁니다.

1. condition이 0 or 1일때 해결 방법을 찾아보세요!
2. condition이 0 or 0이 아닌 모든 수를 지원하도록 해결 방법을 찾아보세요!

아래의 코드에서 /* 연산 */ 부분에 추가적으로 작성하시오.
int main() { 
    int i; scanf("%d", &i);
    int a = 2, b = 4;
    int c = /* 연산 */;
    printf("%d", c);
}

Input

단 한개의 입력이 들어오며, 0 과 1만 입력이 된다.


Output

0이라면 b를, 1이라면 a를 출력한다.

Sample Input Copy

1

Sample Output Copy

2

Source/Category