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

题目

试题 D: 数的分解
本题总分:10 分
【问题描述】
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包
含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和
1001+1000+18 被视为同一种。

暴力解法

三层循环搞定,注意:

①三个不重复的数,只要让j和k大于i就永远不会重复了

②不包含2或4,就是把这个数的每一位取出来看看是不是2或4

 1 #include<bits/stdc++.h> 
 2 using namespace std;
 3 bool judge(int x){
 4     int n;
 5     while(x!=0){
 6         n=x%10;
 7         if(n==2||n==4) return true;
 8         x/=10;//啊细心一点哭了写成n了 
 9     }
10     return false;
11 }
12 
13 int main(){
14     int ans=0,sum;
15     for(int i=1;i<2000;i++){
16         if(judge(i)) continue;
17         for(int j=i+1;j<2000;j++){
18             if(judge(j)) continue;
19             for(int k=j+1;k<2000;k++){
20                 if(judge(k)) continue;
21                 sum=i+j+k;
22                 if(sum==2019) ans++;
23             }
24         }
25     }
26     cout<<ans;
27 }

 

posted @ 2020-03-11 23:57  U40大贤者泰塔斯  阅读(385)  评论(0)    收藏  举报