day01 第十三届蓝桥杯国赛 JavaB

day01

🎉前言:每日更新!不断更!,周内一天一题.周末算法精析

✨更新地址:Royeblog

🎆🎆第十三届国赛javaB A重合次数

🎉题目链接:题号2271

简单描述题目:

在同一天中, 从上午 6 点 13 分 22 秒到下午 14 点 36 分 20 秒, 钟表上的 分针和秒针一共重合了多少次?

注意时针、分针、秒针都围绕中心敳匀速运动。

import java.util.Date;

public class A重合次数 {
    public static void main(String[] args) {
        Date datefirst=new Date();
        datefirst.setHours(6);
        datefirst.setMinutes(13);
        datefirst.setSeconds(22);
        Date dateend=new Date();
        dateend.setHours(14);
        dateend.setMinutes(36);
        dateend.setSeconds(20);


        long qujian=dateend.getTime()-datefirst.getTime();
        int ans=0;
        for (long i = 0; i < qujian; i=i+1000) {
            Date temp=new Date(i+datefirst.getTime());

            int minutes = temp.getMinutes();
            int seconds = temp.getSeconds();
            if (minutes==seconds){
                ans++;
            }
        }
        System.out.println(ans-8);
    }
}

一开始没怎么深度理解题,直接模拟,按照一秒一秒走,每当minutes==seconds就是重合算出来502

!!!一看答案494 我靠没有考虑一个小时周末可能重合60次?减去经过了8小时

细心决定成败

🎆🎆第十三届国赛javaB B数数

🎉题目链接:题号2218

简单描述题目:任何一个大于 1 的正整数都能被分解为若干个质数相乘, 比如 28=2×2×7 被分解为了三个质数相乘。请问在区间 [2333333, 23333333] 中有多少个正整数 可以被分解为 12 个质数相乘?

import java.util.ArrayList;

public class B数数 {
    public static void main(String[] args) {

        int start = 2333333;
        int end = 23333333;
        //list记录质数
        ArrayList<Integer> list=new ArrayList<>();
        //下标i 判断当前i可以是有几个质数相乘
        int[] ispri=new int[end+1];

        int ans=0;
        for (int i = 2; i < end; i++) {
            if (ispri[i]==0){
                ispri[i]=1;
                list.add(i);
            }
            //开始计数
            if (i>=start&&ispri[i]==12){
                ans++;
            }
           //埃氏筛法实例
            for (int j = 0; j < list.size(); j++) {
                Integer integer = list.get(j);
                if (i*integer>end){
                    break;
                }
                ispri[i*integer]=ispri[i]+1;

            }
        }
        System.out.println(ans);
    }
}

一开始想直接暴力,md风扇开始响了都没结果,果断换方法

埃氏筛法变体,注意理解,ispri[]的含义,我写了注释,

❗❗总结:细心!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值