【问题描述】
把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?
注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18和1001+1000+18被视为同一种。
【注意】本题是填空题,正式比赛时,只需要把你求得的答案填入考试页面就可以了,可以采用手工演算、计算器、Excel、编程等求解方法。但这里为了实现评判,还是需要编写一个程序,这个程序可以直接把你求得的答案输出。当然,如果你是采用编程方法得到的答案,也可以提交你的完整的求解程序。
#include<bits/stdc++.h>
using namespace std;
int ans=0;
bool pan(int a)
{
while(a!=0)
{
int m=a%10;
if(m==2||m==4)
{
return true;
}
a=a/10;
}
return false;
}
bool panduan( int a,int b,int c)
{
if(a==b||a==c||b==c)
{
return false;
}
if(pan(a)||pan(b)||pan(c))
{
return false;
}
else
return true;
}
int main()
{
for(int i=1;i<2019;i++)
{
for(int j=1;j<2019-i;j++)
{
if(panduan(i,j,2019-i-j))
{
ans++;
}
}
}
cout<<ans/6;
return 0;
}