最大子序列求和问题
算法一
#include <stdio.h> int maxsubsequence(const int a[], int size) { int maxsum = 0, i = 0, j, thissum, first, last; for (; i < size; i++) { thissum = 0; for (j = i; j < size; j++) { thissum += a[j]; if (thissum > maxsum) { maxsum = thissum; last = j; first = i; } } } for (j = first; j <= last; j++) { if (j != first && a[j] > 0) printf("+"); printf("%d", a[j]); if (j == last) printf("="); } printf("%d", maxsum); return maxsum; } int main(void) { int a[] = { 2, -9, 3, 22, 7, -13, 4, 7, 18 }; maxsubsequence(a, 9); return 0; }