其他分享
首页 > 其他分享> > 蓝桥杯 第十届 数的分解

蓝桥杯 第十届 数的分解

作者:互联网

 

 答案:40785

解题思路:

  1. 三个数为正整数且各不相同(易忽略)。
  2. 三个数都不包含2和4,和为2019.
  3. 三个数的不同排列方式视为一个分解方案。

  规定三个数的大小关系,暴力循环,满足条件则++ans。

    #include <iostream>
    using namespace std;

    int chek(int x);

    int main()
    {
        ios::sync_with_stdio(false);
        cout.tie(0);

        int ans=0;
        int a,b,c;//a<b<c        减小范围
        for(a=1;a<700;++a)//    2019/3=673,a不会大于673。
            for(b=a+1;b<=1010;++b)//b从a+1初始,2019/2=1010,b<c,b不会大于1010。
            {
                c=2019-a-b;
                if(c>b&&chek(a)&&chek(b)&&chek(c))
                {
                    ++ans;
    //                cout<<ans<<":"<<a<<" "<<b<<" "<<c<<endl;//所有分解方法。
                }
            }
        cout<<ans<<endl;


        return 0;
    }

    int chek(int x)//满足条件返回1,否则返回0。
    {
        while(x>0)
        {
            if(x%10==2||x%10==4)
                return 0;
            x/=10;
        }
        return 1;
    }

 

标签:10,return,第十届,int,蓝桥,分解,&&,ans,chek
来源: https://www.cnblogs.com/Slowbeat/p/12373021.html