获取网站访客qq信息,wordpress安装权限设置方法,网络空间服务商,wordpress建站教程视频教程【题目描述】对于给定的一个长度为n的正整数数列ai#xff0c;现要将其分成连续的若干段#xff0c;并且每段和不超过m#xff08;可以等于m#xff09;#xff0c;问最少能将其分成多少段使得满足要求。 【输入格式】第一行包含两个正整数n#xff0c;m#xff0c;表示…【题目描述】对于给定的一个长度为n的正整数数列ai现要将其分成连续的若干段并且每段和不超过m可以等于m问最少能将其分成多少段使得满足要求。 【输入格式】第一行包含两个正整数nm表示了数列的长度与每段和的最大值。第二行包含n个空格隔开的非负整数ai。 【输出格式】一个正整数输出最少划分的段数。 样例输入 5 6 4 2 4 5 1 样例输出 3 【C语言代码实现】
# include stdio.h
int main()
{int n, m;scanf(%d%d, n, m); // 输入两个正整数int a[n];for (int i 0; i n; i) {scanf(%d, a[i]); // 输入a数组元素}int dig 0, s 0; // 变量dig和s分别记录分段数量、当前数列的和for (int i 0; i n; i) {s a[i]; // 累计数列的和if (s m) { // 超过m表明产生一段dig; // 分段的数量加1s 0; // 和归零--i; // 回退要不然会少判断a[i]是否本身大于m} else if (i n - 1) { // 不要忘记最后一个元素这里哦dig;} }printf(%d, dig); // 输出return 0;
}