一、题目链接
http://noi.openjudge.cn/ch0105/23/
二、解题思路
◎ 循环输入每个病人的取药数量:
→ 如果药品总量小于当前病人的取药数量,说明当前病人无法取药,未取上药品的人数加1;
否则,说明当前病人可以取药,药品总量需要减去当前病人的取药数量;
◎ 循环结束后,即可求出未取上药品的人数。
三、实施步骤
◎ 首先,定义并输入两个int类型的整数m、n,分别代表药品总量、取药人数;
◎ 其次,定义两个int类型的整数x、ans,分别代表每个病人的取药数量、未取上药品的人数,初始时ans为0;
◎ 然后,通过标记i代表病人编号,i从1开始,到n为止,更新步长为1,循环处理如下:
→ 输入当前病人的取药数量x;
→ 如果m<x:令ans++;
否则:令m=m-x;
◎ 最后,输出ans。
四、C++程序
#include <iostream>
using namespace std;
int main()
{
int m;
int n;
cin >> m;
cin >> n;
int x;
int ans = 0;
for (int i = 1; i <= n; i++)
{
cin >> x;
if (m < x)
{
ans++;
}
else
{
m = m - x;
}
}
cout << ans;
return 0;
}