liuyichen2024 @ 2024-08-01 12:53:45
#include<bits/stdc++.h>
using namespace std;
int s,v,fen,shi,hua,sj;
int main(){
cin>>s>>v;
if(s%v==0){hua=s/v;}
else{hua=(s/v)+1;}
sj=1910-(hua);
fen=sj%60;
shi=(sj/60);
if(shi>24)shi=shi-24;
if(shi<10){
if(fen<10){
cout<<'0'<<shi<<":"<<'0'<<fen;
}else{cout<<'0'<<shi<<":"<<fen;}
}else{
if(fen<10){
cout<<shi<<":"<<'0'<<fen;
}else{cout<<shi<<":"<<fen;}
}
}
by liuyichen2024 @ 2024-08-01 13:01:24
1910是860+24\60-10 sj是从前一天八点到该出发的时刻的时间 按理说这个sj要换成HH:MM的计时法应该再加一个8小时吧 但是不加反而才能过大部分样例
by liuyichen2024 @ 2024-08-01 13:13:05
不是。。。我以为可能这个计时法只有0点没有24点然后就该成shi>=24就减24 结果这回第7个AC了但是后面的都Wa了
by liuyichen2024 @ 2024-08-01 13:19:51
哦不是我在1910里已经加了8个小时了 所以后面不用加了 但是为什么第7个过不了
by ZYMMM @ 2024-08-01 17:41:42
@liuyichen2024 题目样例中有00:00 你这个是24:00 把shi>24改成shi>=24就行
by liuyichen2024 @ 2024-08-01 17:47:49
@ZYMMM 但是我已经试过改这个了,并没有过而是变成后三个不过了(第七个倒是过了。。)这个70分的代码如下
#include<bits/stdc++.h>
using namespace std;
int s,v,fen,shi,hua,sj;
int main(){
cin>>s>>v;
if(s%v==0){hua=s/v;}
else{hua=(s/v)+1;}
sj=1910-(hua);
fen=sj%60;
shi=(sj/60);
if(shi>=24){shi=shi-24;}
else{shi=shi-8;}
if(shi<10){
if(fen<10){
cout<<'0'<<shi<<":"<<'0'<<fen;
}else{cout<<'0'<<shi<<":"<<fen;}
}else{
if(fen<10){
cout<<shi<<":"<<'0'<<fen;
}else{cout<<shi<<":"<<fen;}
}
}```
by liuyichen2024 @ 2024-08-01 17:49:07
@ZYMMM 不过我用另一种改法过了
#include<bits/stdc++.h>
using namespace std;
int s,v,fen,shi,hua,sj;
int main(){
cin>>s>>v;
if(s%v==0){hua=s/v;}
else{hua=(s/v)+1;}
sj=1910-(hua);
fen=sj%60;
shi=(sj/60);
if(shi>24)shi=shi-24;
if(shi==24)shi=0;
if(shi<10){
if(fen<10){
cout<<'0'<<shi<<":"<<'0'<<fen;
}else{cout<<'0'<<shi<<":"<<fen;}
}else{
if(fen<10){
cout<<shi<<":"<<'0'<<fen;
}else{cout<<shi<<":"<<fen;}
}
return 0;
}```
by liuyichen2024 @ 2024-08-01 17:56:09
我知道了。。如果shi是48的话减24还是24 所以我这两个改法有区别
by liuyichen2024 @ 2024-08-01 17:57:43
但是shi不会是48啊
by ZYMMM @ 2024-08-02 23:35:22
@liuyichen2024 为什么要加一个else{shi=shi-8;}
by ZYMMM @ 2024-08-02 23:51:03
#include<bits/stdc++.h>
using namespace std;
int main(){
double s,v;
int m;
cin>>s>>v;
if(ceil(s/v)>470){
m=ceil(s/v)-470;
printf("%02d:%02d",(1440-m)/60,(1440-m)%60);
}
else{
m=ceil(s/v);
printf("%02d:%02d",(470-m)/60,(470-m)%60);
}
return 0;
}
可以用ceil()向上取整floor()向下取整