在C++中检查一个数字是否在给定的基数
假设我们有一个数字串,我们必须找出这个数是否是给定的基数b?如果字符串是“101110”,b=2,那么程序将返回true。如果字符串是“A8F”,基数是16,则为true。
方法非常简单。如果所有字符都在给定基的符号范围内,则返回true,否则返回false。
示例
#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
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短