求助大佬,8 9 10测试点错误o_o ....

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

Central_Error_Unit @ 2023-12-03 17:05:51

过一天的情况不太会写/(ㄒoㄒ)/~~

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int s,v,n,m;
    cin>>s>>v;
    n=(480-ceil(s/v)-11)/60; 
    m=int((480-ceil(s/v)-11))%60;
    if(n<10&&m>10){
        cout<<0<<n<<":"<<m; 
    }else if(n<10&&m<10){
        cout<<0<<n<<":"<<0<<m;
    }else if(n>=10&&m<10){
        cout<<n<<":"<<0<<m;
    }else if(n>=10&&m>=10){
        cout<<n<<":"<<m;
    }else if(ceil(s/v)>470){
        cout<<"00:00";
    }
    return 0;
}

by csa_chenshuangc6 @ 2023-12-03 19:48:45

答案可能会算到前一天去


by csa_chenshuangc6 @ 2023-12-03 19:50:57

#include<bits/stdc++.h>
using namespace std;

int main(){
    double a,b;
    int t=470,t1,t2;
    cin>>a>>b; 
    t-=ceil(a/b);
    while(t<0){
        t=24*60+t;
    }
    t1=t/60;
    t2=t%60;
    if(t1<10) cout<<0;
    cout<<t1<<':';
    if(t2<10) cout<<0;
    cout<<t2<<endl;
    return 0;
}

拿去借鉴

我警告你别抄


by lyzisb @ 2023-12-09 17:47:26

h<0时,直接加24是非常容易想到的做法。

但是个人倾向于的写法是通过取模来避免分类。

#include<cstdio>
using namespace std;
int output(int x){//直接填入计算出的结果
    int res = (x+24)%24;
    //若x>24,这步操作无效;但x<0时相当于+24
    if(res < 10)
        putchar('0');//更快一些
    printf("%d",x);
}
int main(){
  //···
  //输入,处理
  output(h);
  putchar(":");
  output(min);
  return 0;
}

|