妾身想的就是循环遍历整个数据,如果重量和大于了k,那么计数+1;如果没有 ,先判断是否是最后一个数据,是的话就计数+1并结束了,不是的话就加上后面一个数据,最后重复上述过程。
#include <iostream>
using namespace std;
int main()
{
int n, k;
int arr[1001] = {0};
cin >> n >> k;
int i = 0;
for (i = 0; i < n; i++)
{
cin >> arr[i];
}
int count = 0;
int temp = arr[0];
for (i = 0; i < n; i++)
{
if (temp >= k)
{
count++;
temp = arr[i+1];
}
else
{
if (i == n - 1)
{
count++;
}
else
{
temp += arr[i + 1];
}
}
}
cout << count << endl;
system("pause");
return 0;
}