蓝桥杯 第十届 数的分解
蓝桥杯 第十届 数的分解

答案:40785
解题思路:
- 条件约束
- 三个数为正整数且各不相同(易忽略)。
- 三个数都不包含2和4,和为2019.
- 三个数的不同排列方式视为一个分解方案。
- 分析
规定三个数的大小关系,暴力循环,满足条件则++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;
}

浙公网安备 33010602011771号