2개이하로다른비트1 [C++] 2개 이하로 다른 비트 ★★ 2개 이하로 다른 비트 난이도 ★★ 문제 내 풀이 규칙찾기 ■ 짝수 0을 포함한 2, 4, 6,... 짝수들은 비트로 표현했을 때, 가장 오른쪽 비트는 항상 0이다. 가장 오른쪽 비트는 2^0 = 1에 대응하며, 그 외 나머지 비트들은 모두 2^i으로 짝수이기 때문이다. 가장 오른쪽 비트가 1이면 + 1이 된다는 것이므로 그 비트는 무조건 홀수가 될 수 밖에 없다. 따라서 짝수인 수 2n들의 f 값은 언제나 2n + 1이다. 가장 오른쪽 비트가 0이기에 1을 더해주면 '올림'없이 총 1개의 비트만 다르게 된다. ■ 홀수 짝수와 달리 홀수를 비트로 표현하면 가장 오른쪽 비트가 무조건 1이다. 그렇기 때문에 홀수는 더했을 때의 '올림'을 생각해야 한다. 1만 더해주어도 "최소 2개의 비트"가 달라지기 때문이.. 2022. 8. 16. 이전 1 다음