C ++のビットセットを使用して、数値の2進表現で後続ゼロの数をカウントします。
ビットセットは、ビット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
出力
Count of number of trailing zeros in Binary representation of a number using Bitset are: 6
説明
The number 64 in binary is represented as 10000000 so trailing zeroes in it is 6.
以下のプログラムで使用されるアプローチは次のとおりです −
このアプローチでは、ビットセットを使用しています。 |を使用してビットセットをnumで設定します。次に、forループを使用してビットセットをトラバースします。最初の1が検出されるとすぐにループを中断し、それ以外の場合は後続ゼロのカウントをインクリメントします。
-
入力として整数numを取ります。
-
関数trailing_zeroes(int num)は、numを取り、ビットセットを使用した数値の2進表現で後続ゼロの数のカウントを返します。
-
初期カウントを0とします。
-
ビットセットを取ります。
-
numをarr|=numとして設定します。
-
i=0からi<64までのforループを使用して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<<"Count of number of trailing zeros in Binary representation of a number using Bitset are: "<<trailing_zeroes(num); return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of number of trailing zeros in Binary representation of a number using Bitset are: 1
-
Nの基数16表現で後続ゼロの数を見つけます! C++を使用する
この記事では、たとえば階乗の基数16の表現で特定の数Nの後続ゼロを見つける問題を理解します Input : N = 7 Output : 1 Explanation : fact(7) = 5040 in base10 and 13B0 in base16 having 1 trailing zero. Input : N = 11 Output : 2 Explanation : fact(11) = 39916800 in base10 and 2611500 in base16 having 2 trailing zeroes. まず、10進数を1つの基数から別の基数に変換するプロセ
-
C ++を使用してOpenCVの面の数を数える方法は?
画像内にある顔の数を数えるのは簡単です。前のセクションで作成したプログラムには、「faces.size()」の面の数に関する情報がすでに含まれています。このコード-faces.size()は整数値を与えます。 たとえば、「int x =faces.size()」と書くと、「x」には面の数が含まれます。 次のプログラムは、特定の画像から顔の数を計算し、コンソールウィンドウに表示します。 例 #include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/objdetect/obj