#include
<
iostream
>
using namespace std;
int MaxSub_sequence( int * a, int n, int & begin, int & end)
{
int sum = 0,max = -1;
int tt = 0;
end = 0;
for(int i = 0;i < n;++i)
{
sum = sum + a[i];
if(sum > max)
{
max = sum;
begin = tt;
end = i;
}
if(sum < 0)
{
sum = 0;
tt = i+1;
}
}
return max;
}
int main()
{
int *a,n;
int beg,end;
int max;
cout<<"Please Input the Num:"<<endl;
while(cin>>n&&n != -1)
{
a = new int[n];
cout<<"input:"<<endl;
for(int i = 0;i < n;++i)
cin>>a[i];
max = MaxSub_sequence(a,n,beg,end);
cout<<"max:"<<max<<endl;
cout<<"begin:"<<beg<<" end:"<<end<<endl;
delete []a;
}
return 0;
}
配合笔记使用
using namespace std;
int MaxSub_sequence( int * a, int n, int & begin, int & end)
{
int sum = 0,max = -1;
int tt = 0;
end = 0;
for(int i = 0;i < n;++i)
{
sum = sum + a[i];
if(sum > max)
{
max = sum;
begin = tt;
end = i;
}
if(sum < 0)
{
sum = 0;
tt = i+1;
}
}
return max;
}
int main()
{
int *a,n;
int beg,end;
int max;
cout<<"Please Input the Num:"<<endl;
while(cin>>n&&n != -1)
{
a = new int[n];
cout<<"input:"<<endl;
for(int i = 0;i < n;++i)
cin>>a[i];
max = MaxSub_sequence(a,n,beg,end);
cout<<"max:"<<max<<endl;
cout<<"begin:"<<beg<<" end:"<<end<<endl;
delete []a;
}
return 0;
}