当前位置:   article > 正文

Codeforces 110C Lucky Sum Of Digits 暴力_【c系列3.8】lucky sum of digits

【c系列3.8】lucky sum of digits

点击打开链接

题意:求digit和为n(n<=1e6)&&只含有4,7的最小数字
假设最后有p个4,q个7 为了最小:4排在前面,7排在后面,求出4,7个数即可
4p+7q=n 枚举q,p=(n-7q)/4,数字尽量小->位数p+q尽量小,q尽量小即可. 

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N=2e3+20;
  4. int n;
  5. bool flag;
  6. int main()
  7. {
  8. while(cin>>n)
  9. {
  10. bool flag=false;
  11. int p;
  12. int index=1e7,a,b;
  13. for(int q=0;q<=n/7;q++)
  14. {
  15. if((n-7*q)%4==0)//p为整数
  16. {
  17. flag=true;
  18. p=(n-7*q)/4;
  19. if(index>p+q)//位数尽量小
  20. {
  21. index=p+q;
  22. a=p;
  23. b=q;
  24. }
  25. }
  26. }
  27. if(flag==false)
  28. cout<<-1;
  29. else
  30. {
  31. for(int i=1;i<=a;i++)
  32. cout<<4;
  33. for(int i=1;i<=b;i++)
  34. cout<<7;
  35. }
  36. cout<<endl;
  37. }
  38. return 0;
  39. }



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/75802
推荐阅读
相关标签
  

闽ICP备14008679号