当前位置: 首页 > news >正文

P1425 小鱼的游泳时间

记录

#include<iostream>
using namespace std;
int main()
{int a, b, c, d, t1, t2, t, e, f;cin >> a >> b >> c >> d;t1 = a * 60 + b;t2 = c * 60 + d;t = t2 - t1;e = t / 60;f = t % 60;cout << e << " " << f;return 0;
}

突破点

它发现自己从 a 时 b 分一直游泳到当天的 c 时 d 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?

两个整数 e 和 f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟

思路

不同单位转换,先统一单位,然后进行计算

代码简析

	t1 = a * 60 + b;t2 = c * 60 + d;

全部变成分钟来进行计算

	e = t / 60;f = t % 60;

e代表小时

f代表分钟

补充

单位转换题的注意事项

1. 明确单位关系

  • 理解单位之间的换算关系:在开始解题之前,必须清楚地理解题目中涉及的各个单位之间的换算关系。例如,长度单位之间的换算关系为:

    • 1千米(km)= 1000米(m)

    • 1米(m)= 100厘米(cm)

    • 1厘米(cm)= 10毫米(mm)

  • 列出换算公式:将单位之间的换算关系写成公式,便于在解题过程中使用。例如,将千米转换为米的公式为:

    米=千米×1000

2. 统一单位

  • 选择基准单位:在解题过程中,选择一个基准单位,将所有涉及的单位都转换为这个基准单位。这可以避免在计算过程中出现单位不一致的问题。例如,如果题目中涉及千米和米,可以选择米作为基准单位。

  • 转换所有单位:将题目中给出的所有数据都转换为基准单位。例如,如果题目中给出的距离为2千米和300米,将它们都转换为米:

    2千米=2×1000=2000米300米=300米

3. 注意精度问题

  • 避免浮点数误差:在处理涉及浮点数的单位转换时,要注意浮点数的精度问题。尽量使用整数进行计算,或者在必要时使用高精度数据类型(如doublelong double)。

  • 合理舍入:根据题目的要求,合理舍入计算结果。例如,如果题目要求保留两位小数,可以使用四舍五入的方法。

4. 检查边界条件

  • 考虑极端情况:在解题过程中,要考虑单位转换的边界条件。例如,当距离为0时,转换后的结果也应为0。

  • 检查输入范围:确保输入的数据在合理的范围内,避免出现非法输入。例如,长度单位不应为负数。

5. 编写清晰的代码

  • 使用有意义的变量名:在编写代码时,使用有意义的变量名,便于理解和维护。例如,使用distance_km表示千米单位的距离,使用distance_m表示米单位的距离。

  • 添加注释:在代码中添加注释,说明单位转换的步骤和公式,便于他人理解代码的逻辑。

6. 验证结果

  • 手动计算:在编写代码之前,可以先手动计算几个简单的例子,验证单位转换的公式是否正确。

  • 测试用例:编写多个测试用例,包括正常情况、边界情况和特殊情况,确保代码能够正确处理各种情况。

7. 总结

在处理算法题中的单位转换问题时,需要注意以下几点:

  • 明确单位关系:清楚地理解单位之间的换算关系,并列出换算公式。

  • 统一单位:选择一个基准单位,将所有数据都转换为这个基准单位。

  • 注意精度问题:避免浮点数误差,合理舍入计算结果。

  • 检查边界条件:考虑极端情况,确保输入数据在合理范围内。

  • 编写清晰的代码:使用有意义的变量名,添加注释,便于理解和维护。

  • 验证结果:手动计算几个例子,编写多个测试用例,确保代码的正确性。


文章转载自:

http://zVSa5oia.bLzrj.cn
http://AcgUZSv6.bLzrj.cn
http://6Ub51m4i.bLzrj.cn
http://HuOuyrIg.bLzrj.cn
http://QtnBqGMX.bLzrj.cn
http://RIBzzqtO.bLzrj.cn
http://ayHzbjIB.bLzrj.cn
http://73vhXAij.bLzrj.cn
http://GbtQQiws.bLzrj.cn
http://dKilFU1a.bLzrj.cn
http://8eujPK5Z.bLzrj.cn
http://LoSkIQlv.bLzrj.cn
http://taAAIn6S.bLzrj.cn
http://ct1FEqrr.bLzrj.cn
http://E4nRiE7h.bLzrj.cn
http://lTQ823hC.bLzrj.cn
http://bH821aHY.bLzrj.cn
http://95V05seL.bLzrj.cn
http://1SiolFNL.bLzrj.cn
http://XzLrnRHs.bLzrj.cn
http://apNDJQs3.bLzrj.cn
http://4h2GlLEj.bLzrj.cn
http://ZNH0On1G.bLzrj.cn
http://HmVU9WXP.bLzrj.cn
http://0VnSzzoQ.bLzrj.cn
http://oWq6l9UD.bLzrj.cn
http://7OnQa30S.bLzrj.cn
http://qwp2MXJ1.bLzrj.cn
http://4vX77rpv.bLzrj.cn
http://yP4839Aj.bLzrj.cn
http://www.dtcms.com/a/386392.html

相关文章:

  • 弧焊机器人氩气焊接节能方法
  • 机器人导论 第六章 动力学(2)——拉格朗日动力学推导与详述
  • 在uniapp中调用虚拟机调试vue项目
  • UE5 GAS 技能系统解析:EGameplayAbilityTriggerSource 枚举详解
  • MySQL 基础概念与简单使用
  • PostgreSQL高可用架构实战:构建企业级数据连续性保障体系
  • (二)昇腾AI处理器计算资源层基础
  • C++17新特性:用[*this]告别悬垂指针,提升并发健壮性
  • Buck电路输出电容设计:从理论到实践的完整指南
  • Gin + Gorm:完整 CRUD API 与关系操作指南
  • 996引擎-ItemTips特效框层级自定义
  • 软考高级系统架构设计师之构件与中间件技术篇
  • Maya绑定案例:摆动、扭曲、拉伸(样条IK高级扭曲、表达式)
  • FOG钻井多花数倍成本?MEMS陀螺定向短节如何为成本做“减法”?
  • 性能分析工具的使用
  • DNS-Windows上使用DNS
  • Go 语言开发京东商品详情 API:构建高并发数据采集服务
  • 通用计算流体力学CFD软件VirtualFlow 2025发布,5大亮点
  • 趣味学RUST基础篇(实战Web server)完结
  • 机器人导论 第六章 动力学(1)——牛顿欧拉法推导与详述
  • Android U 浮窗——整体流程介绍(更新中)
  • Pytest+request+Allure
  • Android 反调试攻防实战:多重检测手段解析与内核级绕过方案
  • [vue.js] 树形结点多选框选择
  • websocket python 实现
  • 使用代理访问网络各项命令总结
  • 信创电脑入门指南:定义、发展历程与重点行业部署详解
  • PostgreSQL——元命令
  • PHP 连接池详解:概念、实现与最佳实践
  • nginx + php-fpm改用socket方式代理可能遇到的问题