题目描述
Petya非常喜欢幸运数字。每个人都知道幸运数字是正整数,其十进制记录只包含幸运数字4和7。例如,数字47、744、4是幸运的,而5、17、467则不是。 Petya调用正整数n的掩码,该掩码是在从左到右连续写入数字n的所有幸运数字后获得的数字。例如,数字72174994的掩码是数字7744,掩码7是7,掩码9999047是47。显然,任何数字的掩码总是一个幸运数字。 Petya有两个数字-一个任意整数a和一个幸运数字b。帮助他找到最小数字c(c > a) 使得数字c的掩码等于b。
Input
唯一一行包含两个整数a和b(1 ≤ a,b ≤ 10e5). 保证数字b是幸运的。
Output
在唯一的一行中打印一个数字-Petya所寻求的数字c。
输入1
1 7
输出1
7
输入2
100 47
输出2
147
思路
用字符串来处理,纯暴力,如果 a < b ,直接输出 b;如果 a < b ,让 a 每次加一,然后转换成字符串看字符串 a 里面是否含有 b,如果有就输出并退出,否则一直循环。
代码
#include<iostream>
#include<cstring>
using namespace std;
#define ll long long
int main()
{
ll a,b;
cin>>a>>b;
if(a<b)cout<<b;
else{
while(1)
{
a++;
string as=to_string(a);
string sd=to_string(b);
ll f=as.size();
string d;
for(int i=0;i<f;i++)
{
if(as[i]=='4'||as[i]=='7')d+=as[i];
}
if(d==sd)
{
cout<<as;
return 0;
}
}
}
return 0;
}