多个小int的乘法小心溢出哦(记洛谷P1615题WA的经历,Java语言描述)

WAWA大哭

这破题,你还WA~~
又是没用long,反正这是平时玩耍,正好长点经验,我忍!!

题目要求

P1615题目链接
在这里插入图片描述
在这里插入图片描述

分析

水题~~

简便做法——直接拆开时间,将":"作为split的内容,取出各个时间减一下,取个时间戳(我没用Calendar啊Date啊那些)……
最后乘起来就OKK

不愧水题,时间都不会延续到另一天,天定的time2>time1,easy!!

WA就是没用long,不值一提

AC代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();
        int numPerSecond = scanner.nextInt();
        scanner.close();
        String[] strArr1 = str1.split(":");
        String[] strArr2 = str2.split(":");
        long hour1 = Integer.parseInt(strArr1[0]);
        long hour2 = Integer.parseInt(strArr2[0]);
        long minute1 = Integer.parseInt(strArr1[1]);
        long minute2 = Integer.parseInt(strArr2[1]);
        long second1 = Integer.parseInt(strArr1[2]);
        long second2 = Integer.parseInt(strArr2[2]);
        long counter = ((hour2-hour1)*3600 + (minute2-minute1)*60 + (second2-second1))*numPerSecond;
        System.out.println(counter);
    }
}

涨涨气势:
在这里插入图片描述

说明

具体关于int加起来,乘起来爆掉的问题我后面会着重提的,总不能白WA这么多次……相信我,我是在积累教训 (好吧我菜……) ……

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星拱北辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值