90分,测试点倒数第二个超时,怎么搞

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

WarEpic @ 2024-09-21 08:22:44

#include<stdio.h>   
int main(){
    int v, s, t, hour, min;
    scanf("%d %d", &s, &v);
    if(s % v == 0){
        t = s / t;
    }else{
        t = s / v + 1;
    }
    if(7 - (t + 10) / 60 >= 0){
        hour = 7 - (t + 10) / 60;
    }else{
        hour = 31 - (t + 10) / 60;
    }

    min = 60 - (t + 10) % 60;
    printf("%02d:%02d", hour, min);
    return 0;
}

by STRLEN_SUIYUHAN @ 2024-09-21 08:54:51

@WarEpic

#include <bits/stdc++.h>
using namespace std;
int main() {
    double s, v, t;
    cin >> s >> v;
    t = ceil (s / v) + 10;
    int h = ceil (t / 60), m = (int)t % 60;
    printf ("%02d:%02d", (8 - h + 24) % 24, (0 - m + 60) % 60);
    return 0; 
}

by Rigel @ 2024-09-21 09:28:57

@WarEpic RE 是运行时错误,不是超时。


by Rigel @ 2024-09-21 09:34:17

@STRLEN_SUIYUHAN 人家问您怎么做,没有让您直接贴代码。


by Rigel @ 2024-09-21 09:38:55

@WarEpic 第 6 行应为 t = s / v;

RE 的原因是 t 没有赋初值。


by WarEpic @ 2024-09-21 09:51:07

谢谢各位,问题已经解决了,min没有分类讨论


by WarEpic @ 2024-09-21 09:51:33

@STRLEN_SUIYUHAN 谢谢,代码很优雅


|