@[洛熠](/user/325608) 其实应该没必要那么复杂判断那么多,不仅复杂而且难调。你看下我在当时写的代码。
$sum$表示总分钟数,$ans1$代表第几小时,$ans2$代表第几分钟。算出sum,一个循环就能确定另外两个的值。
```cpp
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
ll s1,s2,sum,ans1=8,ans2=0;
int main()
{
cin>>s1>>s2;
sum=ceil(1.0*s1/(1.0*s2))+10;
if(sum==10) sum=0;
ans2-=sum;
while(ans2<0)
{
ans2+=60;
ans1--;
if(ans1<0) ans1+=24;
}
if(ans1<10) printf("0");
printf("%lld:",ans1);
if(ans2<10) printf("0");
printf("%lld",ans2);
return 0;
printf("你指尖跃动的电光 是我此生不变的信仰");
}
```
by do_while_true @ 2020-04-04 07:34:37
哦~~~~
不过最后一句输出是什么鬼?
by Zmr_ @ 2020-04-04 09:59:23
@[do_while_true](/user/223298)
```cpp
int main()
{
do
printf("唯我超电磁炮永世长存!!");
while(true)
return 0;
}
```
by qqqqq111 @ 2021-04-24 22:12:33
###### 提供简洁思路
```c
#include<iostream>
using namespace std;
int main() {
int s, v;
cin >> s >> v;
int allMin = s / v + 10 + (s % v != 0 ? 1 : 0);
int remain = allMin <= 480 ? 480 - allMin : 1440 + 480 - allMin;
int hour = remain / 60;
int min = remain % 60;
string hourStr = to_string(hour);
string minStr = to_string(min);
string res = (hour < 10 ? "0" + hourStr : hourStr) + ":" + (min < 10 ? "0" + minStr : minStr);
cout << res;
return 0;
}
```
by yuanzhisong @ 2023-08-23 11:38:02