举例说明前缀和定义:
int a[5]={1,2,3,4,5},PrefixSum[5];
PrefixSum[0]=a[0];
PrefixSum[1]=a[0]+a[1];
PrefixSum[2]=a[0]+a[1]+a[2];
PrefixSum[3]=a[0]+a[1]+a[2]+a[3];
PrefixSum[4]=a[0]+a[1]+a[2]+a[3]+a[4];
PrefixSum[5]=a[0]+a[1]+a[2]+a[3]+a[4]+a[5];
可见,PrefixSum[i]=a[0]+a[1]+…+a[i];
前缀和使用例子:
求区间和
#include<stdio.h>
int main()
{
int n1,n2,i,a[5],sum[5];
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
if(i==0)
sum[0]=a[0];
else
sum[i]=sum[i-1]+a[i];
}
scanf("%d %d",&n1,&n2);
printf("%d\n",sum[n2]-sum[n1-1]);/*n2 n1加减多少取决于题目要求的区间范围 */
return 0;
}