B - Lucky Mask
1.题意
如果一个数的每一位都是4或者7,那么这个数字就是幸运的。Petya 定义一个数的“面罩”为:这个数从高位到低位每一位4或者7拼起来的数。Petya有两个数:a(一个任意的正整数),b(一个幸运数字),求比a大的最小数字,且这个数的面罩为b。
2.题解
暴力枚举。判断数字每位的值来求出任意数字的mask(求反转后的mask比较容易,不影响题意),从a+1开始枚举,如果这个数字的mask等于b,结束枚举。
3.代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<bits/stdc++.h> 2 using namespace std; 3 int f(int x) { 4 int ans = 0; 5 while(x > 0) { 6 if(x % 10 == 4 || x % 10 == 7) { 7 ans = ans * 10 + (x % 10); 8 } 9 x /= 10; 10 } 11 return ans; 12 } 13 int main(){ 14 int a, b; 15 cin >> a >> b; 16 int ma = f(b); 17 for(int i = a + 1; ; i++) { 18 if(f(i) == ma) { 19 cout << i << endl; 20 break; 21 } 22 } 23 24 return 0; 25 }