0
点赞
收藏
分享

微信扫一扫

第十届蓝桥杯JavaB组--数的分解

艾晓雪 2022-03-13 阅读 47

题目:

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

思路:

其实就是将2019这个数分成三个不同整数,但要注意1000+1001+18 和 1001+1000+18 被视为同一种,而且分解的整数中不能包括2和4这两个数字。

代码:

public class Main {
    public static void main(String[] args) {
        int n=2019;
        int sum=0;
        for (int i = 1; i < n; i++) {   //分解的第一个数
            for (int j = i+1; j <n&&n-i-j>j ; j++) {   //分解的第二个数
                int t=n-i-j;        //分解的第三个数
                if (!four(i)&&!four(j)&&!four(t)){   //判断分解的整数中是否含有2或4
                    sum++;
                }
            }
        }
        System.out.println(sum);
    }
    public static boolean four(int n){    //创建一个判断分解的整数中是否含有2或4的方法
        while (n>0){
            int m=n%10;
            if (m==2||m==4){
                return true;
            }
            n/=10;
        }
        return false;
    }
}
举报

相关推荐

0 条评论