在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

以上是 在C++中检查一个数字是否在给定的基数 的全部内容, 来源链接: utcz.com/z/315910.html

回到顶部