确定数字是否包含 class 赋值的数字
Determine if a number contains a digit for class assignment
编写一个名为 containsDigit
的函数来确定一个数字是否包含特定数字。
header 应如下所示:
bool containsDigit(int number, int digit);
如果数字包含数字,那么函数应该return true
。否则,函数应该 return 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);
}
}
分解问题的关键是不要跳到代码,先问问自己,我如何提取数字?
将 %
运算符与 10
结合使用。那是你的 current number % 10
。为什么 10
?而不是任何其他号码? - 我们需要得到除法后的余数,这就是 modulo 运算符所做的任何其他数字都不会削减它,请在计算器上尝试一下。
到目前为止一切顺利,现在您还需要做什么?您需要继续搜索并比较剩余的数字。 147 % 10
已经给了你 7
并且你想查看 14
,将 14 与 7 分开,你除以 10 得到不包括 7 的剩余部分。你继续扫描直到你找到数字或数字不足,这是结果。这里有一个问题,跟进,你的代码对负数有效吗?我会留给你解决。
我们剩下以下代码,
bool containsDigit(int number, int digit)
{
while (number != 0)
{
int curr_digit = number % 10;
if (curr_digit == digit) return true;
number /= 10;
}
return false;
}
编写一个名为 containsDigit
的函数来确定一个数字是否包含特定数字。
header 应如下所示:
bool containsDigit(int number, int digit);
如果数字包含数字,那么函数应该return true
。否则,函数应该 return 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);
}
}
分解问题的关键是不要跳到代码,先问问自己,我如何提取数字?
将 %
运算符与 10
结合使用。那是你的 current number % 10
。为什么 10
?而不是任何其他号码? - 我们需要得到除法后的余数,这就是 modulo 运算符所做的任何其他数字都不会削减它,请在计算器上尝试一下。
到目前为止一切顺利,现在您还需要做什么?您需要继续搜索并比较剩余的数字。 147 % 10
已经给了你 7
并且你想查看 14
,将 14 与 7 分开,你除以 10 得到不包括 7 的剩余部分。你继续扫描直到你找到数字或数字不足,这是结果。这里有一个问题,跟进,你的代码对负数有效吗?我会留给你解决。
我们剩下以下代码,
bool containsDigit(int number, int digit)
{
while (number != 0)
{
int curr_digit = number % 10;
if (curr_digit == digit) return true;
number /= 10;
}
return false;
}