问题描述
把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?
注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和1001+1000+18 被视为同一种。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
输入
没有输入。
输出
输出一个整数。
思路:
很简单喽,三重循环遍历判断就行了,种数的问题即使会做也特别容易出错,注意题目中的条件, 不要想当然,不要添油加醋,就不会出错,注意以下几点:
- 题目说是不相等的正整数,所以不包括0,三个数也不相等。
- 三个整数顺序调换视为同一种方法。
- 当然最主要的还是相加等于2019和不包括2和4。
代码呈上;
#include int judge(int n) {int flag = 1;
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