信奥一本通T1038 苹果和虫子

这是一篇关于编程竞赛中一道题目解析的博客。题目描述了一个苹果箱里混入虫子的情况,虫子按照固定速度吃苹果,求经过特定时间后剩余苹果数。多数人在这道题上会犯一个错误,即没有考虑到苹果数量不能为负。正确解答要考虑苹果不能被吃到负数,修正后的代码给出了正确的解决方案。了解这个陷阱后,就能顺利解决此类问题并提高编程竞赛的成绩。
摘要由CSDN通过智能技术生成

首先,请看题目


题干

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 116460 通过数: 33314

题目描述:

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

输入:

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

输出:

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

样例输入:

10 4 9

样例输出:

7


源代码&注释

#include<bits/stdc++.h>  //万能头文件
using namespace std;   //命名空间
int main()
{
	int n,x,y,ans;
    scanf("%d %d %d",&n,&x,&y);
    int a=y%x;
	if(a==0) ans=n-y/x;   //如果吃掉了整数个正好
	else ans=n-y/x-1;     //不然要多减掉一个
	if(ans<0) ans=0;      //如果时间太长了是吃完了、
	                      //而不是吃到只剩负数个(大部分都错在这里)
	printf("%d",ans);
    return 0;
}


这道题大多数人都会错一个例子
为什么呢?
试一试下面一组案例
10 1 100
如果输出的是0
那么恭喜你发现了本题的一个坑点
也就是说如果苹果是不能被吃到负数的😂
那大概是虫子连带着箱子都给吃了
解决了这个问题,那么这道题就AC啦!
那么就可以开开心心的做下一题啦 ✔

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值