数的分解
- 题目描述
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3个整数的顺序被视为同一种方法,例如 1000+1001+18和 1001+1000+18被视为同一种。
2.代码实现:
点击查看代码
#include <stdio.h>
#include <stdlib.h>
int judge(int a) //判断分解的数中是否含有数字2或4
{
while(a)
{
if(a % 10 == 2 || a % 10 == 4)
{
return 0;
}
a /= 10;
}
return 1;
}
int main()
{
int i, j, k;
int ans = 0;
for(i = 1; i <= 2019; i ++)
{
for(j = 1; j <= 2019; j ++)
{
k = 2019 - i - j;
if(judge(i) && judge(j) && judge(k))
{
if(i < j && j < k) //确保分解的数各不相同
{
ans ++;
}
}
}
}
printf("%d\n", ans);
return 0;
}

浙公网安备 33010602011771号