感觉会吓走你们哈哈哈
只有70分
by Czh116489 @ 2022-11-03 11:39:09
@[Czh116489](/user/764793) 不用那么麻烦,可以用printf格式化输出
by lht20090314 @ 2022-11-03 11:54:57
```
#include<bits/stdc++.h>
using namespace std;
int sm,vh,h=7,m=50;
int main(){
cin>>sm>>vh;
if(sm%vh==0)
sm=sm/vh;
else
sm=sm/vh+1;
vh=sm/60;
sm%=60;
m-=sm;
while(m<0){
m+=60;
h--;
}
h-=vh;
while(h<0)
h+=24;
if(h<10)
cout<<0;
cout<<h<<":";
if(m<10)
cout<<0;
cout<<m;
}
```
比较简洁 @[Czh116489](/user/764793)
by OoHappyoO @ 2022-11-03 12:03:30
@[lht20090314](/user/728458) 确实是吃完饭再试一下我也觉得很好用不用那么多if来if去
by Czh116489 @ 2022-11-03 12:05:09
@[OoHappyoO](/user/191252) 待会研究一下感谢了
by Czh116489 @ 2022-11-03 12:05:29
@[Czh116489](/user/764793) 还可以再简化,其实思路就是先把单位统一转化成分钟,然后再计算,这样就会方便很多
```cpp
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int s, v;
scanf("%d%d", &s, &v);
// ceil()的输入和输出都是 double 类型
int t_walk = ceil(1.0 * s / v) + 10; // 两次类型转换注意到了吗
int from_zero = 60 * (24 + 8) - t_walk; // 计算到前一天0点的时间
int hh = (from_zero / 60) % 24; // 计算小时
int mm = from_zero % 60; // 计算分钟
printf("%02d:%02d\n", hh, mm); // 输出两位,用0补齐
return 0;
}
```
by lht20090314 @ 2022-11-03 13:25:14