数的分解:
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包
含数字 2 和 4,一共有多少种不同的分解方法?注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和1001+1000+18 被视为同一种。
代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int f(int x)
{
int s;
while(x)
{
s=x%10;
if(s==2||s==4)
return 0;
x=x/10;
}
return 1;
}
int main()
{
int sum=0,k;
for(int i=1; i<=1999; i++)
{
for(int j=i+1; j<=1999; j++)
{
if(f(i)&&f(j))
{
k=2019-i-j;
if(k<=j)
break;
if(f(k))
sum++;
}
}
}
printf("%d\n",sum);
return 0;
}