lllllllll


私信TA

用户名:wangli6686

访问量:1739

签 名:

等  级
排  名 2346
经  验 2258
参赛次数 6
文章发表 5
年  龄 0
在职情况 学生
学  校 河北农业大学
专  业

  自我简介:

解题思路:设置一些全局变量便于使用,两个正整数n,m,表示了数列A[i]的长度与每段和的最大值;利用for循环对数组进行遍历,在遍历的同时产生最后结果


注意事项:在check()函数中,当执行else时,sum的值不是0,而是a[j],因为for循环遍历,下一个便是a[j+1],所以sum应为a[j];


参考代码:

#include<bits/stdc++.h>

using namespace std;


int n,m;

int a[100005];

int check(){

     int num=1,sum=0;

     for(int j=0;j<n;j++){

         if(sum+a[j]<=m){

              sum+=a[j];

         }

         else{

             num++;

             sum=a[j];

         }

     }

     cout<<num;

}


int main(){

    cin>>n>>m;


     for(int i=0;i<n;i++){

     cin>>a[i];

     }

     check();


return 0;

}


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

思路清晰,看完受了很大启发,作者再接再厉。
2022-04-03 18:59:41
  • «
  • 1
  • »