작은 숫자 가 큰 숫자에서 비트를 빌릴 수 있다는 것을 알고 있습니까? 다음은 예입니다. 두 개의 숫자 5와 14를 가정 해 봅시다. 먼저 이진수로 쓰십시오.
5 14
000101 001110
먼저 우리는 가장 작은을 에 떨어져 많은 수의 비트, 우리는 가장 작은에게주고 떨어져 다른 수에 비트. 그래서
This bit turns off
|
v
000101 001110
^
|
This bit turns on
이제 우리는
000111 001100
우리의 숫자는 7과 12입니다. 첫 번째 숫자는 여전히 작기 때문에 계속 진행합니다.
000111 001100
001111 001000
이제 우리는 15와 8을 가지고 있으므로 멈출 수 있습니다. 이 작업 집합을 "비트 차용"두 숫자라고합니다. 다른 예를 봅시다. 20과 61.
20 61
010100 111101
010101 111100
010111 111000
111111 100000
63 32
최종 결과는 32, 63 입니다. 한 번 더 해봅시다 . 31, 12. 31은 이미 12보다 큽니다. 따라서 할 일이 없습니다! 비트 차입 31 및 12는 31 및 12를 변경하지 않습니다.
도전
당신의 도전은 두 개의 숫자를 취하여 비트 차용하는 프로그램이나 함수를 작성하는 것입니다. 두 숫자는 항상 양의 정수입니다. 입력 및 출력 형식은 합리적입니다.
IO 테스트 :
Input: 2, 3
Output: 3, 2
Input: 3, 2
Output: 3, 2
Input: 8, 23
Output: 31, 0
Input: 42, 81
Output: 63, 0
Input: 38, 41
Output: 47, 32
Input: 16, 73
Output: 23, 0
Input: 17, 17
Output: 17, 17
표준 허점이 적용되고 바이트 단위의 최단 답변이 승리합니다!