हमें एक रेंज दी गई है जिसमें प्रारंभ और अंत है और कार्य दी गई रेंज में मौजूद हेक्साडेसिमल नंबरों या वर्णमाला की संख्या की गणना करना है।
हेक्साडेसिमल वर्णमाला क्या हैं?
कंप्यूटर शब्दों में, हेक्साडेसिमल नंबर वे नंबर हैं जिनका आधार 16 होता है जिसका अर्थ है कि बाइनरी अंक को 16-बिट में दर्शाया जा सकता है। इसमें 0-15 से शुरू होने वाली पूर्णांक संख्याएं होती हैं। जहां 10 को A के रूप में दर्शाया जाता है, 11 को B, 12 को C, 13 को D, 14 को E और 15 को F के रूप में दर्शाया जाता है।
तो, नीचे दिए गए प्रोग्राम में हमारा कार्य यह पता लगाना है कि क्या रेंज में हेक्साडेसिमल वर्णमाला है या नहीं।
उदाहरण के लिए
इनपुट - प्रारंभ = 10, अंत = 13 आउटपुट - 4
व्याख्या - 10 और 13 के बीच 4 हेक्साडेसिमल नंबर हैं यानी 10 जो A है, 11 जो B है, 12 जो C है और 13 जो D है।
इनपुट - प्रारंभ = 15, अंत = 16 आउटपुट - 1
व्याख्या - केवल एक हेक्साडेसिमल वर्णमाला है यानी 15 जो F है और 16 को क्रमशः 10 के रूप में दर्शाया जाता है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
रेंज को इनपुट करें जो चर से शुरू होती है, मान लीजिए प्रारंभ और अंत।
गिनती संग्रहीत करने के लिए एक चर count घोषित करें और इसे 0 से आरंभ करें
i को प्रारंभ से और i के अंत से कम या बराबर होने तक लूप शुरू करें
लूप के अंदर, जांचें कि क्या i 10 से बड़ा या बराबर है और i 15 से भी बड़ा या बराबर है तो count को 1 से बढ़ाएं
अन्यथा, जांचें कि क्या i 15 से बड़ा है
फिर, एक अस्थायी चर temp को i के मान के साथ सेट करें और तब तक पार करें जब तक k 0 के बराबर नहीं है
और जांचें कि क्या k%16, 10 से बड़ा या बराबर है
count को 1 से बढ़ाएं
और, temp को temp/16 पर सेट करें
count का मान लौटाएं
परिणाम प्रिंट करें।
उदाहरण
#include <iostream>
using namespace std;
// कुल हेक्साडेसिमल वर्णमाला की संख्या गिनने के लिए फंक्शन
int counthexa(int start, int end) {
int result = 0;
for (int i = start; i <= end; i++) {
// 10 से 15 तक सभी हेक्साडेसिमल वर्णमाला
if (i >= 10 && i <= 15) {
result++;
}
// यदि i > 15 तो 16 से बार-बार मॉड करें
// जब तक नंबर > 0
// यदि नंबर % 16 > 10 तो count बढ़ाएं
else if (i > 15) {
int k = i;
while (k != 0) {
if (k % 16 >= 10) {
result++;
}
k = k / 16;
}
}
}
return result;
}
// मुख्य फंक्शन
int main() {
int start = 10, end = 60;
cout << "count is: " << counthexa(start, end);
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
count is: 21