题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
把 2019分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18和 1001+1000+18 被视为同一种。
问题分析
采用双重循环暴力破解,注意外层循环的值要小于内层循环的值。
代码实现
#include <stdio.h>
#include <stdlib.h>
int num(int b){//判断一个数中是否含2或含4
int flag=1;
while(b!=0){
if(b%10==2||b%10==4){
flag=0;
break;
}
b/=10;
}
return flag;
}
int main(int argc, char *argv[])
{
int count=0;//统计符合条件的分解的个数
for(int i=1;i<=2019;i++){
for(int j=1;j<=2019-i;j++){
for(int k=1;k<=2019-i-j;k++){
if(i<j&&j<k){//防止重复分解
if(i+j+k==2019&&num(i)&&num(j)&&num(k)){
count++;
}
}
}
}
}
printf("%d",count);
return 0;
}
该文章是一个编程问题,主要通过C语言实现,使用双重循环暴力破解策略,寻找将2019分解为三个不包含数字2和4的正整数之和的不同方法。通过判断函数检查每个数是否符合条件,并统计满足条件的组合数量。
225

被折叠的 条评论
为什么被折叠?



