第十届蓝桥杯java B组—试题D 数的分解

mac2022-07-05  36

文章目录

1.大赛题目2.文字描述如下3.代码实例4.答案

1.大赛题目

图片如下:

2.文字描述如下

试题 D: 数的分解

【问题描述】

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

注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。

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

3.代码实例

方法一:

public class LanqiaotenthD { // 定义一个判断函数,判断这个数是否包含2,4 public static boolean judge(int num) { while(num > 0) { int k = num % 10;//举几个例子:400,40,48,480 //每个正整数都不包含数字2和4 if (k == 2 || k == 4) { return false; } //48对10求余后等于8,所以还要进一步的验证 num /= 10; } return true; } public static void main(String[] args) { int result = 0; for (int i = 1; i < 2019; i++) { for (int j = 1; j < 2019; j++) { for (int f = 1; f < 2019; f++) { if (i + j + f == 2019) { //3个不同的正整数之和等于2019 if (i != j && i != f && j != f) { if (judge(i) && judge(j) && judge(f)) { result++; } } } } } } //一种组合3个数字不同变换一种有6种,最后结果/6 System.out.println(result / 6); } }

方法二:

public class lanqiao10_4 { public static void main(String args[]) { int count = 0; for (int i = 1; i < 2019; i++) { for (int j = 1; j < 2019; j++) { for (int k = 1; k < 2019; k++) { if (i != j && j != k && i != k) { if(i + j + k == 2019) { if(String.valueOf(i).indexOf("2") == -1 && String.valueOf(j).indexOf("2") == -1 && String.valueOf(k).indexOf("2") == -1) { if(String.valueOf(i).indexOf("4") == -1 && String.valueOf(j).indexOf("4") == -1 && String.valueOf(k).indexOf("4") == -1) { count++; } } } } } } } System.out.println("结果为:" + count / 6); } }

方法三

public class lanqiao10_4 { public static void main(String args[]) { int count = 0; for (int i = 1; i < 2019; i++) { for (int j = 1; j < 2019; j++) { for (int k = 1; k < 2019; k++) { if (i != j && j != k && i != k) { if(i + j + k == 2019) { if(!String.valueOf(i).contains("2") && !String.valueOf(j).contains("2") && !String.valueOf(k).contains("2")) { if(!String.valueOf(i).contains("4") && !String.valueOf(j).contains("4") && !String.valueOf(k).contains("4")) { count++; } } } } } } } System.out.println("结果为:" + count / 6); } }

4.答案

40785

最新回复(0)