【算法】从第一个元素开始,计算累和的最大值

来源:互联网 发布:centos定时重启 编辑:程序博客网 时间:2024/05/23 15:25

题如下:
这里写图片描述

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

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

#include<iostream>using namespace std;class Max{    private:        int a[10];        int highNum;            //从第0个元素开始,连续正数的个数         int currentMax;         //从第0个元素开始,连续正数的和         int latterMax;          //从第一个负数开始累和遍历出最大值     public:        void setNum();          //赋值         void findHighNum();     //寻找highNum;         void getlatterMax();    //获取latterMax; }; void Max::setNum(){    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;}void Max::findHighNum(){    int i=0;    currentMax=0;    while(a[i]>=0){        currentMax+=a[i];        i++;    }    highNum=i-1;}void Max::getlatterMax(){    int temp=0;     //累和的值     int max=0;      //最终最大和         for(int i=highNum+1;i<10;i++)    {        temp+=a[i];        if(temp>max)        {            max=temp;        }    }    latterMax=max;    cout<<"最大值为:"<<latterMax+currentMax<<endl;    cout<<"结束"; }int main(){    Max max;    max.setNum();    max.findHighNum();    max.getlatterMax(); } 

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

2017.10.12
Tony-Chen

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

阅读全文
0 0