题解:P5707 【深基2.例12】上学迟到

· · 题解

思路

我们知道了路程和速度,就可以求出来时间,但由于给的数据单位是分钟,所以换算一下即可。

当我们把该时间减去行走时间和垃圾分类后,判断剩下的时间是否大于一天,如果大于一天就减去一天的时间,但你必须向上取整,不然行走时间就会少。

将剩下的时间除以 60 得到出发时的时针,再将剩下的时间对 60 取余得出发时的分针。

代码

#include<bits/stdc++.h>
using namespace std;
double s,v,m;
int n,a,t,b;
int main(){
    cin>>s>>v;
    n=8*60+24*60,t=ceil(s/v)+10,n-=t;
    if(n>=24*60)n-=24*60;
    b=n%60,a=n/60;
    if(a<10){
        if(b<10)cout<<"0"<<a<<":0"<<b;
        else cout<<"0"<<a<<":"<<b;
    }
    else{
        if(b<10) cout<<a<<":0"<<b;
        else cout<<a<<":"<<b;
    }
}