确定数字是否包含类分配的数字

时间:2017-10-18 04:54:48

标签: c++ parsing digit

编写一个名为containsDigit的函数,用于确定数字是否包含特定数字。

标题应如下所示:

bool containsDigit(int number, int digit);

如果number包含数字,则该函数应返回true。否则,该函数应返回false

Input: 
147 9

Output: 
false

我不知道为什么我这样写的时候总是弄错:

bool containsDigit(int number, int digit);

int main() {
  double con;
  int number, digit;
  cout << "Input a number and a digit:\n";
  cin >> number >> digit;
  con = containsDigit(number, digit);
  cout << con;
  return 0;
}

bool containsDigit(int number, int digit) {
  int a(0), b;
  b = number;
  while (number > 0) {
    a = a + 1;
    number = number / 10;
  }
  cout << a;
  while (a > 1) {
    a = a - 1;

    if (b / pow(10, a) == digit) {
      cout << "true\n";
      break;
    } else {
      if (a == 1)
        cout << "false\n";
      else
        cout << "";
    }
    b = b % pow(10, a);
  }
}

1 个答案:

答案 0 :(得分:7)

打破问题是关键不要跳到代码,首先问问自己,我如何提取数字?

%运算符与10一起使用。这是你的current number % 10。为什么10?而不是任何其他数字? - 我们需要得到除法之后的余数,这是modulo运算符所做的任何其他数字不会削减它,在计算器上尝试。

到目前为止一切顺利,你现在还需要做什么?您需要在搜索中继续前进并比较剩余的数字。 147 % 10已经为您7提供了14,您希望查看bool containsDigit(int number, int digit) { while (number != 0) { int curr_digit = number % 10; if (curr_digit == digit) return true; number /= 10; } return false; } ,将您除以7除以7,将剩下的部分除以7。继续扫描,直到找到找到数字或数字不是结果。这里有一个问题,一个跟进,你的代码是否适用于负数?我会把这个留给你来解决。

我们留下以下代码,

    $date = date_create_from_format('d/M/Y:H:i:s', $string);
$date->getTimestamp();