题目链接
题目大意:给你一个数N,然后后面有k个数,这K个数是不能在我定义的数中出现的,然后问你大于等于N的可行的数中最小的是多少,
比如说,9999 然后我不喜欢的数是 8 9 那么数中不能有9这个数,那么最小的也就是10000了
思路:这个题目的话,我做的是暴力枚举,也就是每次都加1,然后判断一下是不是能过,能过就是最小的,没错。。
代码:
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std;
int vis[11];
int main()
{
int n;
int k;
scanf("%d%d",&n,&k);
for(int i=1; i<=k; i++)
{
int x;
scanf("%d",&x);
vis[x]=1;
}
while(1)
{
int k=n;
int flag=0;
while(k)
{
int y=k%10;
k/=10;
if(vis[y]==1)
{flag=1;break;}
}
if(flag==0)
{cout<<n<<endl;break;}
n++;
}
}