1322번 - X와 K
아마 주어지는 x,k가 아주 커서 런타임 에러가 뜨는 거 같은데 어떻게 수정해야 될까요??? long long int 로 바꿔도 똑같은 결과가 나오네요..ㅠㅠ
도와주세요..
우선 이 문제는 배열을 사용하지 않고 비트연산자만을 이용하여 해결할 수 있습니다.
비트연산자만을 사용하여 어떻게 k번째 숫자를 출력할 수 있나요??
X+Y 가 X or Y와 같다는것은 X와 Y의 비트가 서로 다르다는것을 의미합니다.
그렇다면 이 규칙을 유지하면서 숫자를 하나씩 더해주는것으로 이 문제르 해결할 수 있습니다.
아 그렇군요..
예를 들어 x=5인경우 101 이니까 비트가 다르게 y = 10, 1000, 1010, 10000... 이런식으로 y값이 변하는 것은 알겠습니다..
그런데 y값에서 k번째 값을 출력하려면 배열을 쓰지 않고 어떻게 규칙을 알아 낼수 있나요???ㅠㅠ
귀찮게 계속 물어봐서 죄송합니다 ㅠㅠ
댓글을 작성하려면 로그인해야 합니다.
dmsgh7678 8년 전
아마 주어지는 x,k가 아주 커서 런타임 에러가 뜨는 거 같은데 어떻게 수정해야 될까요??? long long int 로 바꿔도 똑같은 결과가 나오네요..ㅠㅠ
도와주세요..