isay @ 2023-12-26 14:10:56
#include <stdio.h>
int main(){
int s;
int v;
int t;
int h;
int m;
scanf("%d %d",&s,&v);
//判断花费时间是否为整分钟,向上取整
if (s % v){
t = s/v + 1; }
else
{ t = s/v; }
if (t >= 1440){t = 1430;} //这句第一次提交未加,但是加不加都是测试7未通过(题目说不超过一天,所以将超过一天的时间强制改为1430)
h = (1910-t)/60; //整数部分即时钟,并将超过24点的转为前一天的时间
if (h>24) {h = h -24;}
m = (1910-t)%60; //余数部分为分钟
printf("%02d:%02d",h,m);
return 0;
}
我将时间转化为分钟数计算,定义的基准点是480,即前一天的早上8点。这样1440就是两天的分界线0点,1920是第二天的早上八点,直接将垃圾分类的十分钟减去,代码中使用1910计算。
by 违规用户名971024 @ 2024-01-05 12:38:28
#include<bits/stdc++.h>
using namespace std;
int main()
{
int s,v;
cin>>s>>v;
int t=ceil(1.0*s/v)+10;
int f=60*(24+8)-t;
int h=(f/60)%24;
int m=f%60;
printf("%02d:%02d",h,m);
return 0;
}
不用那么麻烦。@ takagi73