蒟蒻求助。卡第九个测试点

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

QAQvQAQ @ 2024-01-11 22:00:37

#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    int x=0,f=1;char ch=getchar();
    while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
    while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
    return x*f;
}
int s,v,h=7;
int mn=50,kc;
int main(){
    s=read();
    v=read();
    if(s%v){
        kc=s/v+1;
    }else{
        kc=s/v;
    }
    mn-=kc;
    while(mn<0){
        mn+=60;
        h-=1;
        if(h==0){
            h=24;
        }
    }
    if(h<10){
        if(mn>=10){
            cout<<0<<h<<":"<<mn;
        }else{
            cout<<0<<h<<":"<<0<<mn;
        }
    }else{
        if(mn>=10){
            cout<<h<<":"<<mn;
        }else{
            cout<<h<<":"<<0<<mn;
        }
    }
    return 0;
}

by Weekoder @ 2024-01-11 22:58:58

@black_life 调了快一个小时,终于是改对了:

#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    int x=0,f=1;char ch=getchar();
    while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
    while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
    return x*f;
}
int s,v,h=7;
int mn=50,kc;
int main(){
    s=read();
    v=read();
    if(s%v){
        kc=s/v+1;
    }else{
        kc=s/v;
    }
    mn-=kc;
    while(mn<0){
        mn+=60;
        h-=1;
        if(h==0){
            h=24;
        }
    }
    if(h==24){
        h=0;
    }
    if(h<10){
        if(mn>=10){
            cout<<0<<h<<":"<<mn;
        }else{
            cout<<0<<h<<":"<<0<<mn;
        }
    }else{
        if(mn>=10){
            cout<<h<<":"<<mn;
        }else{
            cout<<h<<":"<<0<<mn;
        }
    }
    return 0;
}

问题是 h 在等于 24 的时候要赋值为 0

真的调了很久,求关注!


by Rieman_sum @ 2024-01-12 15:12:39

没必要这么长吧。。。

参考我的

#include<bits/stdc++.h>
using namespace std;
float n,v; 
int main()
{
    cin>>n>>v;
    int h,m;
    int k=ceil(n/v);
    if(k>1440) k=1440;
    h=7;
    m=50;
    while(1)
    {
        k--;
        if(m==0)
        {
            m=59;
            h--;
            if(h==-1) h=23;
        }
        else ____//这里填什么?
        if(!k) break;
    }
    if(h<10) cout<<'0';
    cout<<h<<':';
    if(m<10) cout<<'0';
    cout<<m<<endl;
    return 0;
}

by QAQvQAQ @ 2024-01-12 16:23:35

@Weekoder 感谢,已关


by QAQvQAQ @ 2024-01-12 16:27:53

@Guo1 不会ceil(蒟蒻的呻吟

ceil是整除?


by Weekoder @ 2024-01-12 18:19:21

@black_life ceil 函数的话,就是向上取整,你的那种写法也可以:

if(s%v){
        kc=s/v+1;
    }else{
        kc=s/v;
    }

这样还只需要用 int 类型。


|