为什么是70分?最后三个测试点没过。求助!!!

P5707 【深基2.例12】上学迟到

felix1 @ 2024-12-19 19:57:29

为什么是70分? 最后三个测试点没过。 求助!!!

#include<bits/stdc++.h>
using namespace std;
int s,v,t1,t2,m,h;
int main(){
    cin>>s>>v;
    t1=s/v+10;
    t2=480-t1;
    m=t2%60;
    h=t2/60;    
    if(h<10&&m>=10){
        cout<<"0"<<h<<":"<<m-1;
    }
    else if(h<10&&m<10){
        cout<<"0"<<h<<":"<<"0"<<m-1;
    }
    else{
        cout<<h<<":"<<m-1;
    }
    return 0;
}

by 0zhouyq @ 2024-12-19 20:11:54

m 无缘无故减一,怎么可能对@felix1


by 0zhouyq @ 2024-12-19 20:12:59

正确做法显然是:

t1=ceil((double)s/(double)v)+10;

by 0zhouyq @ 2024-12-19 20:14:23

输出时不要给 m 减一了,否则你试试下面这组数据。

输入:

100 50

正确输出:

07:48

by 0zhouyq @ 2024-12-19 20:16:06

期中 ceil 函数的作用是上取整,除法需要强行转成浮点数计算以保证精度。

这么详细了,不给个关注么 qwq?@felix1


by felix1 @ 2024-12-19 20:19:10

@0zhouyq 谢谢!改了之后就100了!


|