Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In các số có bit đầu và cuối là các bit set duy nhất

Nhiệm vụ là in ra n số đã cho có chính xác hai bit set, không nhỏ hơn 2 cũng không lớn hơn 2.

Bit set trong ngôn ngữ máy tính là những bit có giá trị 1 và bit không set có giá trị 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

Thuật toán

START
Step 1 -> khai báo biến 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

Ví dụ

#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;
}

Kết quả

Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra đầu ra sau

1 3 5