对于两个整数a,b,如果bb是严格大于a且各位数字均不相同的最小整数,就视b为a的跟屁虫。现在给定a,请用C++语言找出它的跟屁虫b。1000≤a≤9000
时间: 2023-12-28 14:03:23 浏览: 95
c++实现一个简单的大整数算术运算程序 主要功能计算两个大整数 (220 位)的加减法等算术运算 +-*/ 根号 幂都有
以下是C++代码实现:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool check(int n) {
string s = to_string(n);
sort(s.begin(), s.end());
for (int i = 1; i < s.size(); i++) {
if (s[i] == s[i-1]) {
return false;
}
}
return true;
}
int main() {
int a;
cin >> a;
for (int i = a+1; i <= 9876; i++) {
if (check(i)) {
cout << i << endl;
break;
}
}
return 0;
}
```
首先我们需要定义一个 `check` 函数来判断一个整数是否满足各位数字均不相同的条件。具体实现可以将整数转化为字符串后进行排序,然后判断是否有相邻两个数字相同即可。
接下来我们从 $a+1$ 开始遍历到 9876(因为题目中说最大的跟屁虫不超过 9876),并调用 `check` 函数来判断当前数字是否满足条件。如果满足条件,则输出该数字并退出循环。
注意:由于题目中说最小的跟屁虫大于 $a$,所以我们需要从 $a+1$ 开始遍历。同时,题目中说各位数字均不相同的最小整数,所以我们遍历到最大的四位数 9876 即可。
阅读全文