在C ++中使用Bitset对数字的二进制表示形式中的尾随零进行计数
给定整数num作为输入。目的是使用位集查找num的二进制表示形式中的尾随零数。
一个位集在其中存储位0和1。它是一个位数组。
例如
输入值
num = 10输出结果
Count of number of trailing zeros in Binary representation of a number using Bitset are: 1
说明
The number 10 in binary is represented as 1010 so trailing zeroes in it is 1.
输入值
num = 64输出结果
使用位集的数字二进制表示形式中的尾随零数计数是: 6
说明
The number 64 in binary is represented as 10000000 so trailing zeroes in it is 6.
以下程序中使用的方法如下-
在这种方法中,我们使用位集。我们将使用|将数字设置为num。现在,使用for循环遍历位集,一旦遇到第一个1,然后中断循环,否则增加计数以尾随零。
以整数num作为输入。
功能trailing_zeroes(intnum)取num并使用Bitset返回数字的二进制表示形式中尾随零的数量计数。
将初始计数设为0。
采取位setarr。
将num设置为arr|=num。
使用for循环从i=0到i<64遍历arr。如果arr[i]为0,则递增计数,否则将中断循环。
返回计数作为循环结束时的结果。
示例
#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<<"使用位集的数字二进制表示形式中的尾随零数计数是: "<<trailing_zeroes(num); return 0; }输出结果
如果我们运行上面的代码,它将生成以下输出-
使用位集的数字二进制表示形式中的尾随零数计数是: 1