蓝桥杯2019年第十届JavaB组真题题目+解析+代码+答案:4.数的分解

181 阅读1分钟

不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~

在这里插入图片描述
点击下面链接
蓝桥杯历届真题题目+解析+代码+答案(2013-2020)(JavaA、B、C组)

题目描述:

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

在这里插入图片描述
解题思路:

> 由于是填空题,所以不需要考虑时间,直接暴力求解
> 由于三个数可以组成6中相同情况,根据排列组合
> 所以最终结果除以6

代码:

public class Main {
    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+k==2019&&judge(i)&&judge(j)&&judge(k)&&i!=j&&j!=k&&i!=k) {
    					count++;
    				}
    			}
    		}
    	}
    	System.out.println(count/6);
	} 
    public static boolean judge(int n) {
    	while(n>0) {
    		if(n%10==2||n%10==4) {
    			return false;
    		}
    		n/=10;
    	}
    	return true;
    }
}

答案:

40785