25.
자연수 두 수(a, b)를 입력받아 두 수를 2진수로 표현하였을 때 a
를 b와 같은 수를 만들려고 한다. 교환 작업의 최소 횟수를 구하여
라! 단, 반드시 인접한 두 개의 비트를 함께 교환해야 한다. 예를
들면 “0110101”에서 왼쪽에서 두 번째 비트 ‘1’를 ‘0’으로 교환하
려면 서번째 비트 ‘1’도 함께 교환이 된다. 그래서 “0000101”이 된
다. 그리고 마지막 가장 오른쪽 비트는 교환 작업으로 인접한 비트
에 영향을 주지 않는다.(반드시 비트 연산자로 연산하는 프로그램을
작성하시오!)
26.
어떤 자연수(a)가 주어진다. 이 때 0부터 b가 되기 위해 1씩 증가
한다. 자연수(a)를 2진수(8bit)로 표현하면 비트가 계속 변할 것이
다. 계속 변화는 비트의 개수를 구하시오! 예를 들면 자연수(a)가 3
이라고 하면 00000000-> 00000001 ->00000010 ->00000011 총
4번 변한다. 단, 자연수(a)의 범위는 255 이하이다. (반드시 비트연
산자로 연산하는 프로그램을 작성하시오!)
위 문제들은 한국정보올림피아드(KOI)대회 기출문제를 참고하여 재
구성하였습니다.
수고하셨습니다.