蓝桥杯C/C++组 第四题:数的分解(10分)
题目描述
把 2019分解成 3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?
注意交换 3个整数的顺序被视为同一种方法,例如 1000+1001+18和1001+1000+18被视为同一种。
题目分析
暴力循环+位数判断
题目代码
// // Created by xiehou on 2021/4/17. // #include <iostream> using namespace std; int main() { int sum=0; for(int i=1;i<2017;i++) { if(i%10==2||(i/10)%10==2||(i/100)%10==2||(i/1000)%10==2||i%10==4||(i/10)%10==4||(i/100)%10==4||(i/1000)%10==4) { continue; } else { for(int j=i+1;j<2017;j++) { if(j%10==2||(j/10)%10==2||(j/100)%10==2||(j/1000)%10==2||j%10==4||(j/10)%10==4||(j/100)%10==4||(j/1000)%10==4) { continue; } else { for(int k=j+1;k<2017;k++) { if(k%10==2||(k/10)%10==2||(k/100)%10==2||(k/1000)%10==2||k%10==4||(k/10)%10==4||(k/100)%10==4||(k/1000)%10==4) { continue; } if(i+j+k==2019) { sum++; } } } } } } printf("%d",sum); return 0; }