对于两个整数a,ba,b,如果bb是严格大于aa且各位数字均不相同的最小整数,就视bb为aa的跟屁虫。现在给定aa,请正在学习编程的你找出它的跟屁虫bb。C++
时间: 2024-02-03 17:15:34 浏览: 101
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
bool check(int x) {
int cnt[10] = {0};
while (x) {
cnt[x % 10]++;
x /= 10;
}
for (int i = 0; i < 10; i++) {
if (cnt[i] > 1) {
return false;
}
}
return true;
}
int main() {
int a;
cin >> a;
for (int i = a + 1; ; i++) {
if (check(i)) {
cout << i << endl;
break;
}
}
return 0;
}
```
首先定义一个函数 `check`,用来判断一个整数的各个数字是否都不相同。接着读入整数 `a`,从 `a + 1` 开始往后枚举整数,如果找到第一个各位数字都不相同的整数,就输出它并结束程序。
相关问题
对于两个整数a,ba,b,如果bb是严格大于aa且各位数字均不相同的最小整数,就视bb为aa的跟屁虫。现在给定aa,请用C++语言你找出它的跟屁虫bb。
以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
bool check(int x) {
int vis[10] = {0};
while (x > 0) {
int t = x % 10;
if (vis[t]) return false;
vis[t] = 1;
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`来检查一个整数是否满足各位数字均不相同的条件。具体实现是,我们使用一个长度为10的数组来记录每个数字是否出现过,如果出现过则返回false,否则返回true。
接下来,在主函数中读入整数a,然后从a+1开始依次枚举整数,判断是否满足条件。如果满足条件,则输出该整数并退出程序。
题目描述 具体而言,给定两个整数 a,ba,b,保证 b\neq 0b =0。莲子要实现这样一个函数 \operatorname{fun}(a,b)fun(a,b) 来将 bb 的符号转移到 aa 上。 具体而言,\operatorname{fun}(a,b)=\operatorname{sgn}(b)\times |a|fun(a,b)=sgn(b)×∣a∣。其中,\operatorname{sgn}(b)=\begin{cases}1&b>0\\-1&b<0\end{cases}sgn(b)={ 1 −1 b>0 b<0 换而言之: 如果 bb 是正数,那么 \operatorname{fun}(a,b)=+|a|=|a|fun(a,b)=+∣a∣=∣a∣; 如果 bb 是负数,那么 \operatorname{fun}(a,b)=-|a|fun(a,b)=−∣a∣。 输入格式 共一行两个整数 a,ba,b。 输出格式 共一行一个整数 \operatorname{fun}(a,b)fun(a,b) 的值。
给定两个整数 a 和 b,保证 b 不等于 0。要实现一个函数 fun(a,b),将 b 的符号转移到 a 上。
具体而言,fun(a,b) = sgn(b) × |a|,其中 sgn(b) = {1,当 b > 0;-1,当 b < 0;0,当 b = 0}。
阅读全文