- [Problemas] Descripción
viene dado por una secuencia de n números enteros a1, a2, ..., a ( n), y seleccionar el valor máximo del campo de secuencia.
- Análisis de
la definición del campo máximo cuando todos son números enteros negativos y cero.
- Definición:
es decir, 0 o el valor máximo de i a la secuencia entre las secuencias de los dos j.
- Por ejemplo: la secuencia (-2,11, -4,13, -5, -2), y para encontrar el máximo campo:
máx. 11 = + (-. 4) = 20 es + 13 es
#include<iostream>
const int MAX_LEN =100;
using namespace std;
int getMaxSum(int* a,int n){
int max=0;
int temp=0;
for(int i=0;i<n;i++){
if(temp>0){
temp+=a[i];
}else{
temp=a[i];
}
if(max<temp){
max=temp;
}
}
return max;
}
int main(){
int a[MAX_LEN];
int maxSum;
int n;
cout<<"请输入序列的元素个数"<<endl;
cin>>n;
cout<<"请依次输入序列的元素"<<endl;
for(int i=0;i<n;i++){
cin>>a[i];
}
maxSum=getMaxSum(a,n);
cout<<maxSum<<endl;
}