zoukankan      html  css  js  c++  java
  • 第十届蓝桥杯软件类省赛 Java 大学 B 组 题目 第四题

    D.数的分解

    题目描述:

    把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。
    【答案提交】
    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

      • (1).第一想到的是三重循环,在每一重里面都进行一个判断(是否包含数字2和4),最后一重判断相加是否等于2019;
      • (2).题目中提到各不相同,排列组合公式共六种(ABC,ACB,BAC,BCA,CAB,CBA),同时交换顺序视为一种,所以最后有也就剩ABC这一种排列方式,令j=i+1,k=j+1,可减少次数;
      • public class Main {
        
            public static boolean fenjie(int a)
            {
                while(a>0)
                {
                    if(a%10==2||a%10==4) {
                        return true;
                    }a/=10;
        
                }
                return false;
            }
        
            public static void main(String[] args) {
                // TODO Auto-generated method stub
        
                int ans=0;
                for(int i=1;i<2019;i++)
                {
                    if(fenjie(i))
                        continue;
                    for(int j=i+1;j<2019;j++)
                    {
                        if(fenjie(j))
                            continue;
                        for(int k=j+1;k<2019;k++)
                        {
                            if(fenjie(k))
                                continue;
                            if(i+j+k==2019) {
                                ans++;
                            }
                        }
                    }
                }
                System.out.println(ans);//40785
            }
        
        }
  • 相关阅读:
    ASM ClassReader failed to parse class file- probably due to a new Java class file version that isn't supported yet问题
    Git配置工作
    Git多人协作
    Git分支合并
    网络收藏夹
    莫道桑榆晚,为霞尚满天
    2021幼升小
    2020年07月28日10:36:36
    JAVA中如果用BigDecimal做除法
    mybatis
  • 原文地址:https://www.cnblogs.com/de-ming/p/14053330.html
Copyright © 2011-2022 走看看