思路没问题,细节出错了: `ceil(s/t)`
**这里s和t都是整数,算除法的时候会自动向下取整**
所以需要把s换成实数类型:`ceil(1.0*s/t)`
AC代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int m, t, s;
scanf("%d %d %d",&m, &t, &s);
int eat = ceil(1.0*s/t);
int final = m-eat;
if(t!=0)
{
if(final<0)
{
printf("0");
}
else
{
printf("%d",final);
}
}
else
{
printf("0");
}
return 0;
}
```
by zhang_feng_rui @ 2023-11-02 21:30:30
首先指出一个无关紧要的问题,记录吃掉的苹果数的变量,变量名用 `eaten` 或许更好一些(~~在洛谷你甚至可以学到英语知识~~
`ceil(s/t)` 中,`s/t` 会自动向下取整(整数除以整数等于整数),所以应为 `ceil(1.0*s/t)`。
而且 `t` 可能等于 $\small0$ , 所以应将 `eat` 和 `final` 的定义放在 `if (t!=0) { ... } ` 的语块内。
@[great_mad](/user/1160345)
by YMnRb @ 2023-11-02 21:32:56