Lucky Mask

传送门

题目描述

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;
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值