इनपुट के रूप में एक पूर्णांक संख्या दी गई है। लक्ष्य बिटसेट का उपयोग करके संख्या के द्विआधारी प्रतिनिधित्व में अनुगामी शून्यों की संख्या ज्ञात करना है।
एक बिटसेट इसमें बिट्स 0s और 1s को स्टोर करता है। यह बिट्स की एक सरणी है।
उदाहरण के लिए
इनपुट
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 का उपयोग करके सेट करेंगे। अब लूप के लिए बिटसेट का उपयोग करके ट्रैवर्स करें, जैसे ही पहले 1 का सामना करना पड़ता है, फिर लूप को तोड़ दें अन्यथा अनुगामी शून्य के लिए वृद्धि की गणना करें।
-
इनपुट के रूप में एक पूर्णांक संख्या लें।
-
फ़ंक्शन ट्रेलिंग_ज़ीरो (इंट नंबर) संख्या लेता है और बिटसेट का उपयोग करके किसी संख्या के बाइनरी प्रतिनिधित्व में अनुगामी शून्य की संख्या देता है।
-
प्रारंभिक गणना 0 के रूप में लें।
-
एक बिटसेट गिरफ्तारी करें।
-
इसे num के साथ arr |=num के रूप में सेट करें।
-
i=0 से i<64 तक लूप के लिए उपयोग करते हुए ट्रैवर्स एरर। अगर 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