要求输入任一个三位正整数a,和任一个1-9之间的数字b,要求编程找出1-a之间所有带数宇b和b的倍数的数字,并将这些数宇打印出来,用C++代码
时间: 2024-09-21 09:10:43 浏览: 30
PAT计算机能力考试乙级1-10题答案.doc
为了实现这个功能,你可以使用C++编写一个简单的程序。首先,我们需要获取用户输入的三位正整数a和一位数b。然后,我们将遍历1到(a-1)范围内的每个数字,检查它是否包含数字b并且是b的倍数。如果是,则打印出来。以下是相应的C++代码示例:
```cpp
#include <iostream>
#include <string>
bool hasDigit(int num, int digit) {
std::string strNum = std::to_string(num);
return strNum.find(digit) != std::string::npos;
}
bool isMultipleOf(int num, int multiple) {
return num % multiple == 0;
}
void printNumbers(int a, int b) {
for (int i = 1; i < a; ++i) {
if (hasDigit(i, b) && isMultipleOf(i, b)) {
std::cout << i << " ";
}
}
std::cout << std::endl;
}
int main() {
int a, b;
std::cout << "请输入一个三位正整数a: ";
std::cin >> a;
std::cout << "请输入一个1-9之间的数字b: ";
std::cin >> b;
// 检查输入的有效性
if (a < 100 || a > 999 || b < 1 || b > 9) {
std::cerr << "无效的输入! 数字a应为三位,b应在1到9之间.\n";
return 1;
}
printNumbers(a, b);
return 0;
}
```
运行此程序时,按照提示输入数字a和b,它会输出所有满足条件的数字。
阅读全文