热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

蓝桥杯19省4数的分解(把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换3个整数的顺序被视为同一种方法,例)

问题描述把2019分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换3个整数的顺

问题描述

把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和1001+1000+18 被视为同一种。
答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

输入
没有输入。

输出
输出一个整数。

思路:
很简单喽,三重循环遍历判断就行了,种数的问题即使会做也特别容易出错,注意题目中的条件, 不要想当然,不要添油加醋,就不会出错,注意以下几点:

  • 题目说是不相等的正整数,所以不包括0,三个数也不相等。
  • 三个整数顺序调换视为同一种方法。
  • 当然最主要的还是相加等于2019和不包括2和4。

代码呈上;

#include int judge(int n) {int flag = 1;
// if(n%10==2 || n%10==4 ||(n/10)%10==2 || (n/10)%10==4 ||(n/100)%10==2 || (n/100)%10==4 || (n/1000)%10==2 || (n/1000)%10==4)
// flag=0;//第二种判断方法,推荐!while(n>0) {int k=n%10;if(k==2 || k==4) {flag = 0;}n/=10;}return flag;
}int main () {int i,j,k;int num &#61; 0;for(i&#61; 1; i<&#61;2019; i&#43;&#43;) {for(j&#61;i&#43;1; j<&#61;2019; j&#43;&#43;) {for(k&#61;j&#43;1; k<&#61;2019; k&#43;&#43;) {if(i&#43;j&#43;k&#61;&#61;2019) {if(judge(i)&#61;&#61;1 && judge(j)&#61;&#61;1 && judge(k)&#61;&#61;1) {num&#43;&#43;;}}}}}printf("%d",num);return 0;
}

答案&#xff1a;40785


推荐阅读
author-avatar
alian
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有