用c++进行编程,对于两个整数a,b,如果b是严格大于a且各位数字均不相同的最小整数,就视b为a的跟屁虫。 输入 一个整数a,1000≤a≤9000。 输出 一个整数b,题目保证有解。
时间: 2023-11-12 22:12:19 浏览: 29
以下是C++代码实现:
```cpp
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
// 判断一个数的各位数字是否都不相同
bool check(int x) {
bool vis[10] = {false};
while (x) {
int d = x % 10;
if (vis[d]) return false;
vis[d] = true;
x /= 10;
}
return true;
}
int main() {
int a;
cin >> a;
for (int i = a + 1; ; i++) {
if (check(i)) {
cout << i << endl;
break;
}
}
return 0;
}
```
首先,定义一个 `check` 函数,用于判断一个数的各位数字是否都不相同。具体实现方式是使用一个 `vis` 数组,记录每个数字是否出现过,若某个数字已经出现过,则说明该数的各位数字不全不同。
在主函数中,从 `a+1` 开始枚举整数,然后调用 `check` 函数判断该整数的各位数字是否都不相同,如果符合条件,则输出该整数,并结束程序。由于题目保证有解,因此一定能找到符合条件的整数。