B - Lucky Mask

 1.题意

  如果一个数的每一位都是4或者7,那么这个数字就是幸运的。Petya 定义一个数的“面罩”为:这个数从高位到低位每一位4或者7拼起来的数。Petya有两个数:a(一个任意的正整数),b(一个幸运数字),求比a大的最小数字,且这个数的面罩为b。

 2.题解

  暴力枚举。判断数字每位的值来求出任意数字的mask(求反转后的mask比较容易,不影响题意),从a+1开始枚举,如果这个数字的mask等于b,结束枚举。

 3.代码

 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 }
View Code

 

posted on 2020-12-20 16:33  吕瓜皮  阅读(95)  评论(0)    收藏  举报