menu 首页 标签 归档 视频 关于
算法-从第一个元素开始,计算累和的最大值

一言加载中...

题如下:
describe

在这里只使用了10个数字,来计算从第一个元素开始,累和的最大值;

C++代码如下(解释在代码里,就不过多阐述了):

#include<iostream>
using namespace std;

class Max
&#123;
    private:
        int a[10];
        int highNum;            //从第0个元素开始,连续正数的个数 
        int currentMax;         //从第0个元素开始,连续正数的和 
        int latterMax;          //从第一个负数开始累和遍历出最大值 
    public:
        void setNum();          //赋值 
        void findHighNum();     //寻找highNum; 
        void getlatterMax();    //获取latterMax; 
&#125;; 

void Max::setNum()
&#123;
    a[0]=3;
    a[1]=7;
    a[2]=-1;
    a[3]=3;
    a[4]=5;
    a[5]=-7;
    a[6]=8;
    a[7]=4;
    a[8]=-5;
    a[9]=1;
&#125;
void Max::findHighNum()
&#123;
    int i=0;
    currentMax=0;

    while(a[i]>=0)&#123;
        currentMax+=a[i];
        i++;
    &#125;
    highNum=i-1;
&#125;
void Max::getlatterMax()
&#123;
    int temp=0;     //累和的值 
    int max=0;      //最终最大和     
    for(int i=highNum+1;i<10;i++)
    &#123;
        temp+=a[i];
        if(temp>max)
        &#123;
            max=temp;
        &#125;
    &#125;
    latterMax=max;
    cout<<"最大值为:"<<latterMax+currentMax<<endl;
    cout<<"结束"; 
&#125;


int main()&#123;
    Max max;
    max.setNum();
    max.findHighNum();
    max.getlatterMax(); 
&#125; 

如有问题,欢迎指出,谢谢。

2017.10.12
Tony-Chen

人不逼自己一把,永远不知道自己有多优秀!!

写博客不易,请我喝杯咖啡?

评论

arrow_upward