C语言90分,卡测试点7,求大佬答疑

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

isay @ 2023-12-26 14:10:56

#include <stdio.h>

int main(){
    int s;
    int v;
    int t;

    int h;
    int m;
    scanf("%d %d",&s,&v);
    //判断花费时间是否为整分钟,向上取整
    if (s % v){
        t = s/v + 1; }
    else 
        { t = s/v; }

    if (t >= 1440){t = 1430;}  //这句第一次提交未加,但是加不加都是测试7未通过(题目说不超过一天,所以将超过一天的时间强制改为1430)

    h = (1910-t)/60;  //整数部分即时钟,并将超过24点的转为前一天的时间
    if (h>24) {h = h -24;}
    m = (1910-t)%60;  //余数部分为分钟
    printf("%02d:%02d",h,m);
    return 0;
}

我将时间转化为分钟数计算,定义的基准点是480,即前一天的早上8点。这样1440就是两天的分界线0点,1920是第二天的早上八点,直接将垃圾分类的十分钟减去,代码中使用1910计算。


by 违规用户名971024 @ 2024-01-05 12:38:28

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int s,v;
    cin>>s>>v;
    int t=ceil(1.0*s/v)+10;
    int f=60*(24+8)-t;
    int h=(f/60)%24;
    int m=f%60;
    printf("%02d:%02d",h,m);
    return 0;
}
不用那么麻烦。@ takagi73

|