全WA求助

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

Xu_Haowen @ 2025-01-10 21:03:32

各位大佬帮忙看一眼

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

int main()
{
    int s,v;
    cin>>s>>v;

    //7:50
    int tt=7*60+50;
    int t=s/v+s%v;
    int sum=tt-t;

    int h=sum/60;
    int m=sum%60;
    printf("%02d:%02d",h,m);

    return 0;
}

全WA!!!!!
@ZJ_lzz


by JmBecca @ 2025-01-10 21:11:03

@Xu_Haowen对t的计算错了,这边提供解法:

1、if-else判断:如果s可以被v整除,那么时间就是s/v,如果不行,那么时间就在s/v的基础上+1;

  if(s % v == 0)
        t = s/v;
    else
        t = s/v+1;

2、ceil函数:c++内置函数,主要提供对表达式向上取整:

t=ceil(s/v);

改完就好了,祝AC,求关哈,嘻嘻


by ZJ_lzz @ 2025-01-10 22:06:05

@JmBecca

发帖的是徐浩闻,我同学。


by ZJ_lzz @ 2025-01-10 22:07:33

他称隔壁班一位女同学叫姐姐。


by ZJ_lzz @ 2025-01-10 22:09:36

@Ding_Sichen

没错就是这位。


by ZJ_lzz @ 2025-01-10 22:20:54

@Xu_Haowen

使用 if 大法,另外 Double 类型了解一下。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    double a,v;
    double i,n;
    double c,g;
    cin>>a>>v;
    c=ceil(a/v);
    c=c+10;
    i=floor(c/60);
    n=c-i*60.0;
    if(n!=0)
    {
        n=60-n;
        i=8-1-i;
        if(i<0)
        {
            i=24-abs(i);
        }
    }
    if(n==0)
    {
        i=8-i;
        if(i<0)
        {
            i=24-abs(i);
        }
    }
    if(i>=10&&n>=10)
    {
        cout<<i<<":"<<n<<endl;
    }
    if(i>=10&&n<10)
    {
        cout<<i<<":"<<"0"<<n<<endl;
    }
    if(i<10&&n>=10)
    {
        cout<<"0"<<i<<":"<<n<<endl;
    }
    if(i<10&&n<10)
    {
        cout<<"0"<<i<<":"<<"0"<<n<<endl;
    }
    return 0;
}

by Ding_Sichen @ 2025-01-10 22:21:49

阿巴阿巴


|