//求一个数列的最大子序列和 #include <iostream> #include <vector> int MaxSubsequenceSum(const std::vector<int>& ivec) { int ThisSum = 0, MaxSum = 0; for(std::vector<int>::const_iterator it = ivec.begin(); it != ivec.end(); ++it) { ThisSum += *it; if(ThisSum < 0) ThisSum = 0; else if(ThisSum > MaxSum) MaxSum = ThisSum; } return MaxSum; } int main(int argc, char const *argv[]) { std::cout<<"Please input some number:"<<std::endl; int num; std::vector<int> ivec; while(std::cin>>num) ivec.push_back(num); for(std::vector<int>::const_iterator it = ivec.begin(); it != ivec.end(); ++it) std::cout<<*it<<" "; std::cout<<std::endl; std::cout<<"The MaxSubsequenceSum is:"<<MaxSubsequenceSum(ivec)<<std::endl; return 0; }