上学迟到

题目描述#

学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 10 分钟的时间进行垃圾分类。

学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一天出发,但是提前的时间不会超过一天。

输入格式#

一行两个正整数 s,v,分别代表路程和速度。

输出格式#

输出一个 24 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0

样例 #1#

  • 样例输入 #1
copy100 99
  • 样例输出 #1
copy07:48

提示:对于 100% 的数据,1s,v104

分析与题解#

  • 小时与分钟属于不同的时间单位,需要统一单位运算,一般化成基本单位(例如分钟)
  • 出发时间与要求到校的时间间隔需要>=路上一共花的时间(包括扔垃圾)
  • 格式控制
  • 出发时间从后往前推(可能存在提前一天的情况),就存在两种情况,分别考虑即可
    • 提前
    • 不提前

参考代码#

copy#include<iostream>
#include<cstdio>
using namespace std;
 
int main() 
{   
  int s, v; 
  cin>>s>>v;
  float walktime = s*1.0/v;	 
  int starttime = 480;
  int hh, mm; 
  while (1){
  	if (((8*60-starttime)*1.0) >= (walktime+10))
  		break;
  	else
  		starttime-=1;
  	}
      
  if (starttime>=0){
  	hh = starttime/60;            //直接根据当前时间(总的分钟数)化成小时和分钟表示
  	mm = starttime%60;
  }
	
  else{
  	hh=(24*60+starttime)/60;      //starttime为负,意味着提前一天(跨天)了,用当天的总的分钟数减去即可
  	mm=(24*60+starttime)%60;
    } 	

  printf("%02d:%02d",hh,mm);
  return 0;
}
posted @   Devinwon  阅读(2003)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示
主题色彩