题目描述:
把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?
注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18 和1001+1000+18 被视为同一种。
代码:
#include<bits/stdc++.h>
using namespace std;
int res;
int main(){
for(int i=1;i<673;i++){
string s1=to_string(i);
if(s1.find('2')!=-1||s1.find('4')!=-1)continue;
for(int j=i+1;j<1346;j++){
string s2=to_string(j);
if(s2.find('2')!=-1||s2.find('4')!=-1)continue;
int k=2019-i-j;
if(k<=j)continue;
string s3=to_string(k);
if(s3.find('2')!=-1||s3.find('4')!=-1)continue;
if(i+j+k==2019)res++;
}
}
cout<<res<<endl;
return 0;
}