这道题目主要判断条件为不包含数字2和4,通过取模mod运算来判断,然后通过嵌套for循环得出答案。话不多说,上代码。
#include<iostream>
using namespace std;
int judge(int n)
{
while(n) //当n不为0时
{
if(n%10==2||n%10==4)
{
return 0;
}
n/=10;
}
return 1;
}
int main()
{
int i,j,k;
int cnt=0;
for(int i=1;i<=2019;i++)
{
for(int j=1;j<=2019;j++)
{
k=2019-i-j;
if(judge(i)&&judge(j)&&judge(k)&&i<j&&j<k)
{
cnt++;
}
}
}
cout<<cnt<<endl;
}
第一次在嵌套for循环里忘记题设还限制了重复的条件,再加上i<j&&j<k即可,保证不会出现重复的题解。最后跑出的答案为40785.