- 【課題】説明
のシーケンスによって与えられる。nは整数A1、A2、...、( N)、 及びシーケンスフィールドの最大値を選択します。
- 分析
全てが負の整数およびゼロの最大フィールドの定義。
- 定義:
Jの両方の配列の間の配列に、すなわち0またはIの最大値。
- たとえば、次の配列(-2,11、-4,13、-5、-2)、および最大フィールド見つける:
( - 4)最大11 = +を= 20 + 13であります
#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;
}