Zoe_yuyang 2018-12-13 08:12 采纳率: 50%
浏览 5734

新手求教:关于虫子吃苹果问题

苹果和虫子

【题目描述】
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

【输入】
输入仅一行,包括n,x和y(均为整数)。

【输出】
输出也仅一行,剩下的苹果个数。

【输入样例】
10 4 9
【输出样例】
7

可以通过ceil函数实现苹果的“完整”问题吗?程序运行时答案错误,求教

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{int n,x,y;
cin>>n>>x>>y;
if(y<=n*x) 
cout<<n-ceil(y/x)<<endl;
else
cout<<0<<endl;
return 0;
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2018-12-13 09:19
    关注
    #include<iostream>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    int main()
    {int n,x,y;
    cin>>n>>x>>y;
    if(y<=n*x) 
    cout<<n-ceil(y/(float)x)<<endl;
    else
    cout<<0<<endl;
    return 0;
    }
    

    这个程序存在精度误差风险,比如说算出来y/x=1.0000001,那么按理说应该返回1,而ceil可能会返回2
    修改如下:

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    
    int myceil(float x)
    {
        if ((ceil(x)) != (ceil(x - 0.0001)))
            return ceil(x) - 1; //避免1.000001 -> 2
        else
            return ceil(x);
    }
    
    int main()
    {int n,x,y;
    cin>>n>>x>>y;
    if(y<=n*x) 
    cout<<n-myceil(y/(float)x)<<endl;
    else
    cout<<0<<endl;
    return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?