मान लीजिए, हमारे पास एक संख्या स्ट्रिंग है, हमें यह पता लगाना है कि संख्या दिए गए आधार B की है या नहीं? यदि स्ट्रिंग "101110", b =2 है, तो प्रोग्राम सही हो जाएगा। यदि स्ट्रिंग "A8F" है, तो आधार 16 है, यह सत्य होगा।
दृष्टिकोण बहुत सरल है। यदि सभी वर्ण दिए गए आधार के प्रतीकों की श्रेणी में हैं, तो सही लौटें, अन्यथा गलत।
उदाहरण
#include <iostream> using namespace std; bool inGivenBase(string s, int base) { if (base > 16) //program can handle upto base 1 return false; else if (base <= 10) { //for 0 to 9 for (int i = 0; i < s.length(); i++) if (!(s[i] >= '0' && s[i] < ('0' + base))) return false; } else { for (int i = 0; i < s.length(); i++) if (! ((s[i] >= '0' && s[i] < ('0' + base)) || (s[i] >= 'A' && s[i] < ('A' + base - 10)))) return false; } return true; } int main() { string str = "A87F"; int base = 16; if(inGivenBase(str, base)){ cout << str << " is in base " << base; } else { cout << str << " is not in base " << base; } }
आउटपुट
A87F is in base 16