您的位置:首页 > 其它

202002225之数的分解(填空)

2020-04-07 12:23 1026 查看

标题: 数的分解(本题总分:10 分)
【问题描述】
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和1001+1000+18 被视为同一种。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
这个题很复杂所以一开始就没考虑,觉得算的过程中一定有考虑不周的地方。但其实看了题解也没那么难,OK函数用来判断当前数字从个位开始一位一位左移判断数字里是否含2或4。main函数里三重循环遍历组成2019的三个数字符合要求且各不相等。
还要注意的是,三个数顺序不同数相同只算一种。所以同样三个数会有六种排列方式,所以最终答案还要除以六。
下面是AC代码:

#include <bits/stdc++.h>
using namespace std;
bool ok(int num){
while(num){
int t=num%10;
if(t==2||t==4)
return false;
num/=10;
}
return true;
}
int main(){
int n=2019;
int cnt=0;
for(int i=1;i<2018;i++){
for(int j=1;j<2018;j++){
for(int k=1;k<2018;k++){
if((i+j+k)==2019){
if(ok(i)&&ok(j)&&ok(k)&&(i!=j)&&(j!=k)&&(i!=k))
cnt++;
//printf("%d+%d+%d=2019\n",i,j,k);
}
}
}
}
printf("%d\n",cnt/6);
return 0;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
是IMI呀 发布了38 篇原创文章 · 获赞 0 · 访问量 731 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: