前缀和 ( C++ )

#include
#include
using namespace std;

void upData(int a[], int prefix[], int num, int index, int n) {
    int old=a[index];
    a[index]=num;
    for(int i=index;i<n;i++) {
        prefix[i]+=num-old;
    }
}

int main() {
    int n=10;
    int a[n];
    for(int i=1; i<11; i++) {
        a[i-1]=i;
    }
    int prefix[10]= {0};
    prefix[0]=a[0];
    for(int i=1; i<n; i++) {
        prefix[i]+=prefix[i-1]+a[i];
    }
//
    for(int i=0;i<n;i++) {
        printf("a[%d] = %d\n",i,a[i]);
    }
    for(int i=0; i<n; i++) {
        printf("prefix[%d] = %d\n",i,prefix[i]);
    }
//
    upData(a,prefix,100,5,10);
//
    for(int i=0;i<n;i++) {
        printf("a[%d] = %d\n",i,a[i]);
    }
    for(int i=0; i<n; i++) {
        printf("prefix[%d] = %d\n",i,prefix[i]);
    }
//
    return 0;
}

你可能感兴趣的:(C++)