求助这道题为什么过不了,自己找不出来错误。

Tony5t4rk 2017-12-03 05:28:20


#include <iostream>
#include <cmath>
int main()
{
using namespace std;
int n,w,mi,a = 0;
cin >> n >> w;
for (int i = 0; i < n; ++i)
{
cin >> mi;
if (mi <= w)
{
a++;
}else if (mi > w)
{
a += 2;
}
}
cout << ceil((double)a/2.0);
return 0;
}
...全文
148 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2017-12-03
  • 打赏
  • 举报
回复
#include <iostream> #include <cmath> int main() { using namespace std; int n,w,mi,a = 0; cin >> n >> w; for (int i = 0; i < n; ++i) { cin >> mi; if(mi%w==0) a+=mi/w; else a+=(mi/w+1); } if(a%2==0) printf("%d",a/2); else pritnf("%d",a/2+1); return 0; }
Tony5t4rk 2017-12-03
  • 打赏
  • 举报
回复
引用 3 楼 hdt 的回复:
else if (mi > w) //这里不应该是 a+=2 也可能两次拿不完呢? { a += mi/w }
对对对,我局限到样例里面了,没有考虑到这种情况。谢谢
真相重于对错 2017-12-03
  • 打赏
  • 举报
回复
而且要分别考虑有余部分,和余0部分
真相重于对错 2017-12-03
  • 打赏
  • 举报
回复
else if (mi > w) //这里不应该是 a+=2 也可能两次拿不完呢? { a += mi/w }
Tony5t4rk 2017-12-03
  • 打赏
  • 举报
回复
引用 1 楼 paschen 的回复:
ceil((double)a/2.0); 改成: (int)ceil((double)a/2.0); 呢?


还是过不了
paschen 2017-12-03
  • 打赏
  • 举报
回复
ceil((double)a/2.0); 改成: (int)ceil((double)a/2.0); 呢?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧