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 }

浙公网安备 33010602011771号