moyunruhua @ 2024-05-10 19:52:28
#include<stdio.h>
#include<math.h>
int main()
{
int s,v,h,m;
int t,sum;
scanf("%d %d",&s,&v);
t=s/v+1;//取整数部分 然后统一加一
if(t+10<=480)//是否在第一天
{
sum=480-t-10;
h=sum/60;
m=sum%60;
if(m>=10)
{
printf("0%d:%d",h,m);
}
else
{
printf("0%d:0%d",h,m);
}
}
else if(t+10>480)
{
sum=1920-t-10;
h=sum/60;
m=sum%60;
if(m>=11)
{
printf("%d:%d",h,m);
}
else
{
printf("%d:0%d",h,m);
}
}
}
只有第九个WA 不知道是哪里没想到。
by moyunruhua @ 2024-05-10 19:56:20
@moyunruhua h是小时位 m是分钟位 sum根据所在天不同 分别用 480分钟(八小时)减和1920分钟(24+8小时)减
by LHM_zs @ 2024-05-10 20:00:01
#include<stdio.h>
int s,v,t;
int main(){
scanf("%d %d",&s,&v);
int sum=(24+8)*60;
if(s%v!=0)t=s/v+1+10;
else t=s/v+10;
int ans=sum-t;
if(t<8*60)ans-=24*60;
int h=ans/60;
int m=ans%60;
if(h<10)printf("0%d:",h);
else printf("%d:",h);
if(m<10)printf("0%d",m);
else printf("%d",m);
return 0;
}
貌似是判断天数的地方错了
by LHM_zs @ 2024-05-10 20:00:37
@moyunruhua
by 2023TYK @ 2024-05-10 20:25:46
@moyunruhua t=s/v+1 需要特判,第9点才会对,代码参考楼上。
by moyunruhua @ 2024-05-10 21:51:43
@LHM_zs 感谢同学,确实是在
if(s%v!=0)t=s/v+1+10;
else t=s/v+10;
部分出了问题。是我在看题解的时候理解错了,我以为能被整除的时候也要提前一分钟避免卡点来。 非常感谢你的解答!
by moyunruhua @ 2024-05-10 21:52:19
@2023TYK 感谢同学,确实是在
if(s%v!=0)t=s/v+1+10;
else t=s/v+10;
部分需要特判。是我在看题解的时候理解错了,我以为能被整除的时候也要提前一分钟避免卡点来。 非常感谢你的解答!