牛客网NC21994:分钟计算

牛客网NC21994:分钟计算

📝 题目描述

在这里插入图片描述

输入格式

  • 输入两行,每行包含两个整数,分别表示小时和分钟
  • 第一行表示起始时间,第二行表示结束时间

输出格式

  • 输出一个整数,表示两个时间点之间的分钟数

示例

输入

10 10
11 05

输出

55

💡 解题思路

这道题目的核心在于如何计算两个时间点之间的时间差。思路非常直观:

  1. 将时间统一转换为分钟表示
  2. 计算两个时间点之间的分钟差

具体来说,对于时间 h:m,我们可以将其转换为分钟数:h * 60 + m
然后用第二个时间点的分钟数减去第一个时间点的分钟数,即可得到结果。

📊 代码实现

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c,d;
    cin>>a>>b;
    cin>>c>>d;
    cout<<(c*60+d)-(a*60+b)<<endl;//将时间统一转换为分钟表示,计算两个时间点之间的分钟差
}

📚 代码详解

让我们逐行分析这段简洁而高效的代码:

  1. #include<bits/stdc++.h>:包含C++标准库中的所有头文件,虽然这在实际工程中不推荐使用,但在算法竞赛中很常见,可以节省包含多个头文件的时间。

  2. int a,b,c,d;:声明四个整型变量:

    • a:第一个时间点的小时
    • b:第一个时间点的分钟
    • c:第二个时间点的小时
    • d:第二个时间点的分钟
  3. cin>>a>>b;:读入第一个时间点的小时和分钟。

  4. cin>>c>>d;:读入第二个时间点的小时和分钟。

  5. cout<<(c*60+d)-(a*60+b)<<endl;

    • c*60+d:将第二个时间点转换为分钟表示
    • a*60+b:将第一个时间点转换为分钟表示
    • 两者相减得到时间差(分钟数)
    • 输出结果并换行

🔍 时间复杂度分析

  • 时间复杂度:O(1),只进行了简单的数学运算
  • 空间复杂度:O(1),只使用了几个变量

💯 总结

这是一道简单的数学转换问题,核心思想是将时间统一转换为某一单位(本题中是分钟)后再进行计算。解决此类问题的关键在于找到合适的统一度量单位,简化计算过程。

这种时间转换的思路在实际编程中很常见,比如计算时间差、日期处理等场景都会用到类似技巧。对于初学者来说,这是一个很好的练习基础数学运算和单位转换的题目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值