用c++编写 找出一个三位数,该数是37的倍数,该数循环左移后得到的另外两个数也是37的倍数
时间: 2024-10-23 20:13:40 浏览: 19
在C++中,你可以通过遍历三位数并检查它们是否同时满足两个条件来找到这样的数:一是它是37的倍数;二是将它循环左移一位、两位后仍然是37的倍数。这实际上是一个数学和编程结合的问题,可以使用for循环解决。以下是简单的步骤:
1. 定义一个函数,接受一个整数作为输入,并判断其是否为37的倍数。
2. 遍历100到999之间的所有三位数。
3. 对每个数字进行左移操作,并检查移动后的结果是否仍是37的倍数。
下面是一个基本的示例代码片段:
```cpp
#include <iostream>
bool isDivisibleBy37(int num) {
return num % 37 == 0;
}
bool leftShiftIsDivisible(int num) {
// 左移一位和两位后的数字
int shiftedOne = (num * 10 + num) % 37; // num * 11 % 37
int shiftedTwo = (shiftedOne * 10 + num) % 37; // shiftedOne * 11 % 37
return isDivisibleBy37(num) && isDivisibleBy37(shiftedOne) && isDivisibleBy37(shiftedTwo);
}
int findNumber() {
for (int i = 100; i <= 999; ++i) {
if (leftShiftIsDivisible(i)) {
return i;
}
}
return -1; // 如果找不到符合条件的数,返回-1或抛异常
}
int main() {
int result = findNumber();
if (result != -1) {
std::cout << "找到了一个符合条件的三位数:" << result << std::endl;
} else {
std::cout << "未找到符合条件的三位数。" << std::endl;
}
return 0;
}
```
阅读全文