Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

첫 번째 비트와 마지막 비트가 유일한 설정 비트인 숫자를 인쇄합니다.

<시간/>

작업은 2보다 작거나 2보다 크지 않은 정확히 2개의 세트 비트를 갖는 주어진 n개의 숫자를 인쇄하는 것입니다.

컴퓨터 언어에서 설정 비트는 값이 1이고 설정되지 않은 비트는 값이 0인 비트입니다.

Input: value of num=5
Output: 1 3 5
   As 1 is equivalent to 1 in binary
      3 is equivalent to 11 in binary
      5 is equivalent to 101 in binary

알고리즘

START
Step 1 -> declare variable as unsigned int num=5 and int i=1
Step 2 -> print i
Step 3 -> Loop For i=3 and i<=num and ++i
   IF (!(i-1 & i-2))
      Print i
   End
End
STOP

예시

#include <stdio.h>
int main(int argc, char const *argv[]) {
   unsigned int num = 5;
   int i = 1;
   printf("%d ", i); //printing first number 1
   for (i = 3; i <= num; ++i) {
      if(!(i-1 & i-2)) //performing and operation on i-1 and i-2
      printf("%d ", i);
   }
   return 0;
}

출력

위의 프로그램을 실행하면 다음 출력이 생성됩니다.

1 3 5