如果一个正整数可以被它的每个非零数字整除,我们就称它为公平的。例如,102 是公平的(因为它可以被 1 和 2 整除),但 282 不是,因为它不能被 8 整除。 给定一个正整数 n。找到最小整数 x,使得 n≤x 并且 x 是公平的。 写一段C++代码
时间: 2024-03-26 21:42:10 浏览: 212
c++,求被整除的数
以下是可以解决这个问题的 C++ 代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
bool check(int num) {
int n = num;
while (n > 0) {
int d = n % 10;
if (d == 0 || num % d != 0) {
return false;
}
n /= 10;
}
return true;
}
int main() {
int n;
cin >> n;
for (int i = n; i <= 1000000; i++) {
if (check(i)) {
cout << i << endl;
break;
}
}
return 0;
}
```
该代码使用了一个check函数来检查一个数是否公平。然后,从n开始循环,逐个检查每个数是否公平,直到找到最小的公平数为止。注意,这里默认最小的公平数不超过1000000。
阅读全文