[关闭]
@PaulGuan 2016-10-18T04:53:36.000000Z 字数 490 阅读 666

J - Lucky Mask 题解

算法 题解


题目大意

一个数字如果只含有4和7,我们将其称为幸运数字,如果将正常数字中含有的4和7依次提取,和给定的幸运数字相等,那么输出,现给定一个正常数字a和幸运数字b,求大于这个数字的最小的符合上面条件的数字。

分析

考虑到本题的数据范围(1<=a,b<=10^5),我们直接从a开始一个个穷举即可,若要优化,则可进行判断,筛除不需要进行判断的数。

代码

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <string>
  4. #include <sstream>
  5. using namespace std;
  6. int main()
  7. {
  8. int a;
  9. string b;
  10. cin>>a>>b;
  11. int i,j;
  12. for(i=a+1;;i++)
  13. {
  14. string c;
  15. ostringstream oss;
  16. oss<<i;
  17. c=oss.str();
  18. string d;
  19. for(j=0;j<c.size();j++)
  20. {
  21. if(c[j]=='4'||c[j]=='7')
  22. {
  23. d.push_back(c[j]);
  24. }
  25. }
  26. if(d==b)
  27. break;
  28. }
  29. cout<<i<<endl;
  30. return 0;
  31. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注