- 问题描述
把 2019分解成 3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?
注意交换 3个整数的顺序被视为同一种方法,例如1000+1001+18和1001+1000+18被视为同一种。
- 解题方法
暴力(枚举) - 代码展示
#include <stdio.h>
int main(){
int i,j,z,n=0;
for(i=1;i<=2019;i++){
for(j=1;j<=2019;j++){
z=2019-i-j;
if(z>0){
if((i==j)||(i==z)||(j==z)){
continue;
}
if((i%10)==2||(i%10)==4||((i%100)/10)==2||((i%100)/10)==4||((i%1000)/100)==2||((i%1000)/100)==4||((i%10000)/1000)==2||((i%100)/1000)==4){
continue;
}
if((j%10)==2||(j%10)==4||((j%100)/10)==2||((j%100)/10)==4||((j%1000)/100)==2||((j%1000)/100)==4||((j%10000)/1000)==2||((j%100)/1000)==4){
continue;
}
if((z%10)==2||(z%10)==4||((z%100)/10)==2||((z%100)/10)==4||((z%1000)/100)==2||((z%1000)/100)==4||((z%10000)/1000)==2||((z%100)/1000)==4){
continue;
}
n=n+1;
}
}
}
n=n/6;
printf("%d",n);
return 0;
}
答案:40785
注意事项:
1.printf不加&
2.题目必须一个字一个字的考虑,不然怎么错的都不知道