当前位置:   article > 正文

2019的分解_20192019怎么分解

20192019怎么分解

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

把 20192019 分解成 33 个各不相同的正整数之和,并且要求每个正整数都不包含数字 22 和 44,一共有多少种不同的分解方法?

注意交换 33 个整数的顺序被视为同一种方法,例如 1000+1001+181000+1001+18 和 1001+1000+181001+1000+18 被视为同一种。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M
    1. #include <iostream>
    2. #include<algorithm>
    3. using namespace std;
    4. bool pan(int a,int b,int c)
    5. {
    6. int n;
    7. while(a)
    8. {
    9. n=a%10;
    10. if(n==4||n==2)return false;
    11. a/=10;
    12. }
    13. while(b)
    14. {
    15. n=b%10;
    16. if(n==4||n==2)return false;
    17. b/=10;
    18. }
    19. while(c)
    20. {
    21. n=c%10;
    22. if(n==4||n==2)return false;
    23. c/=10;
    24. }
    25. return true;
    26. }
    27. int main()
    28. {
    29. int cnt=0;
    30. for(int i=1;i<=2019;i++)
    31. for(int j=i+1;j<=2019;j++)
    32. for(int k=j+1;k<=2019;k++)
    33. {
    34. if(i+j+k==2019&&pan(i,j,k))cnt++;
    35. if(i+k+j>2019)break;
    36. }
    37. cout<<cnt;
    38. return 0;
    39. }

    直接枚举法,用一个break减少一下时间复杂度就pass了。

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

闽ICP备14008679号