蓝桥杯_重叠次数 java

文章介绍了两种方法来计算从上午6点13分22秒到下午14点36分20秒,钟表上的分针和秒针重合的次数。第一种利用Java的LocalTime类,第二种通过手动处理边界条件。每个小时内分针和秒针会重合两次,但需要排除整小时的重合,因此最终答案需要减去8次。
摘要由CSDN通过智能技术生成

问题描述

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

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

答案提交

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

运行限制

  • 最大运行时间:1s

  • 最大运行内存: 512M

解题思路及代码

思路一:
使用LocalTime时在59分和59秒时会重叠一次,在整时会重叠一次
例如:11:59:59 12:00:00
也就是说一个小时会重叠两次,而题目要求是分钟和秒钟的重叠次数,故时钟,分钟,秒钟同时重叠的次数不算(这题还是有点咬文嚼字了,我说怎么比答案多了8次)
又因为早上6点到下午14点有8个小时,所以要在总次数上减去8
代码
import java.time.LocalTime;

public class 重合次数 {
    public static void main(String[] args) {
        //初始化时间
        LocalTime localTime = LocalTime.of(6, 13, 22);
        LocalTime localTime2 = LocalTime.of(14, 36, 20);
        int count = 0;
        while (localTime.isBefore(localTime2)) {//退出条件
            if (localTime.getMinute() == localTime.getSecond()) {
                count++;
            }
            localTime = localTime.plusSeconds(1);//秒数+1
        }
        System.out.println(count - 8);
    }
}
思路二:
使用常规写法,这里的思路体现在处理边界问题上,在整时整分的重置问题做了调整
即:当等于61秒时再重置分钟,这样就可以避免整时整分整秒重复的问题了
代码
public class 重合次数 {
    public static void main(String[] args) {
        int hour = 6;
        int min = 13;
        int sec = 22;
        int ans = 0;//记录重复次数
        while (true) {
            if (hour == 14 && min == 36 && sec == 20) {
                break;
            }
            if (min == sec) {
                ans++;
            }
            //当等于61秒时再重置分钟,这样就可以避免整时重复的问题了
            if (sec > 60) {
                min++;
                sec = 1;//注意:这里重置分钟时是1, 而不是0
            }
            //同上
            if (min > 60) {
                hour++;
                min = 1;
            }
            sec++;
        }
        System.out.println(ans);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值