Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm số lượng các số không ở cuối trong Biểu diễn nhị phân của một số bằng cách sử dụng Bitset trong C ++


Cho một số nguyên num làm đầu vào. Mục đích là để tìm số lượng các số 0 ở cuối trong biểu diễn nhị phân của num bằng cách sử dụng bitet.

Một bộ bit lưu trữ các bit 0 và 1 trong đó. Nó là một mảng các bit.

Ví dụ

Đầu vào

num = 10

Đầu ra

Count of number of trailing zeros in Binary representation of a number using
Bitset are: 1

Giải thích

The number 10 in binary is represented as 1010 so trailing zeroes in it is
1.

Đầu vào

num = 64

Đầu ra

Count of number of trailing zeros in Binary representation of a number using Bitset are: 6

Giải thích

The number 64 in binary is represented as 10000000 so trailing zeroes in it is 6.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -

Trong cách tiếp cận này, chúng tôi đang sử dụng bitet. Chúng tôi sẽ đặt tập hợp bit với num bằng cách sử dụng |. Bây giờ tập hợp bit đi ngang bằng cách sử dụng vòng lặp for, ngay khi gặp số 1 đầu tiên, hãy phá vỡ vòng lặp, nếu không thì số lượng tăng dần cho các số 0 ở cuối.

  • Lấy một số nguyên làm đầu vào.

  • Hàm trailing_zeroes (int num) nhận num và trả về số lượng các số không ở cuối trong biểu diễn nhị phân của một số bằng cách sử dụng Bitset.

  • Lấy số lượng ban đầu là 0.

  • Hãy tìm kiếm bitet arr.

  • Đặt nó với num là arr | =num.

  • Traverse arr sử dụng vòng lặp for từ i =0 đến i <64. Nếu arr [i] là 0 thì số gia tăng khác sẽ phá vỡ vòng lặp.

  • Kết quả trả về là kết quả ở cuối vòng lặp.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int trailing_zeroes(int num){
   int count = 0;
   bitset<64> arr;
   arr |= num;
   for (int i = 0; i < 64; i++){
      if (arr[i] == 0){
         count++;
      } else {
         break;
      }
   }
   return count;
}
int main(){
   int num = 6;
   cout<<"Count of number of trailing zeros in Binary representation of a number using Bitset are: "<<trailing_zeroes(num);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Count of number of trailing zeros in Binary representation of a number using Bitset are: 1