这道题主要是输出控制比较麻烦,要考虑的点比较多
1.对分钟数取整
2.对小时数进行判断并取余,如果是整点就是(8 -(x/60))再对24取余,如果不是整点就还需要小时数减1也就是(7 -(x/60))再对24取余.
*不过这里有个问题,我第一个判断的时候没有+24,也就是没有向上取整结果也通过了。但是第二个判断的时候必须要+24向上取整才能通过。有时间再看看
3.对分钟进行取余
4.输出控制,小于10小时的要在前面添“0”,大于10小时的不用添“0”。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int s, v,h,m,x;//h是小时数,m是分钟数,x是路上消耗的分钟数
cin >> s >> v;
if(s%v==0) //对分钟数取整
x = s / v + 10;
else
x = s / v + 1 + 10;
if(x%60==0) //对小时数做取余判断,看是否有整点
h = (8 - (x / 60))%24;
else
h = (7 - (x / 60)+24) % 24; //+24是方便向上取整
m = 60-(x % 60);
if (m==0) //对分钟数做取余判断
m = 0;
if (h < 10 ) //输出控制判断
{
if (m < 10)
{
cout << "0" << h << ":" <<"0"<< m;
}
else
cout << "0" << h << ":" << m;
}
else
cout << h << ":" << m;
return 0;
}