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 }
浙公網安備 33010602011771號