以下是我的代码:
#include <iostream>
using namespace std;
int main()
{
int s, v, HH, MM, t;
cin >> s >> v;
if (s % v == 0)
t = s / v + 10;
else t = s / v + 11;//因为路程与速度相除可能会出现小数的情况,因此分情况讨论
int H = t / 60;
MM = 60-t % 60;//分别算出所花费的小时数与剩余的分钟数
if (H > 8 || H == 8)
if (MM == 0)
HH = 24 - (H - 8);
else HH = 24 - (H - 8) - 1;
else
if (MM == 0)
HH = 8 - H;
else HH = 8 - H - 1;//分情况讨论是在前一天还是在当天,所要输出的准确小时数和分钟数
if (H > 8)
if(MM<10)
cout << HH << ':' <<0<< MM;
else cout << HH << ':' <<MM;
else
if(MM<10)
cout <<0<< HH << ':' <<0<< MM;
else
cout << 0 << HH << ':' << MM;//根据题目要求,分情况讨论不足时补零格式化输出
return 0;
}
重要点都标出来了,这道题就注意两点;
1.注意两整型相除,c++默认是会向下取整的,所以时间计算要分类讨论(ps:或者有向上取整的函数 )
2.注意格式化输出时候需要补零