A题
题目描述
给定一个整数\(x\),请你找到严格大于\(x\)且各位数字均不相同的最小整数\(y\)。
\(1000 \le x \le 9000\)
做法分析
发现数据范围很小,那么我们可以直接从\(x+1\)进行枚举,同时使用一个 check 函数检查是否满足条件。
代码
#include <bits/stdc++.h>
using namespace std;
int x;
bool check(int a)
{
int num[10];
for(int i = 0; i < 10; i++)
num[i] = 0;
while(a > 0)
{
if(num[a % 10])
return 0;
num[a % 10]++;
a /= 10;
}
return 1;
}
int main()
{
scanf("%d", &x);
for(int i = x + 1; ; i++)
{
if(check(i))
{
printf("%d", i);
return 0;
}
}
return 0;
}