前缀和=前n个数之和
区间和=一段范围内数字之和
用一个a[]数组装数字
用一个sum[]数组装总和
sum[1]=前1个数之和
sum[2]=前2个数之和
sum[3]=前3个数之和
......
sum[n]=前n个数之和
那么:
sum[10]-sum[5]=a[6]+a[7]+a[8]+a[9]+a[10];
求a[6]~a[10]之和=sum[10]-sum[5]
求a[l]~a[r]之和=sum[r]-sum[l-1];
准备工作:
sum[]数组怎么计算? 递推
sum[n]=sum[n-1]+a[i];
前n个数之和=前n-1个数之和+第n个数
sum数组计算代码
for(int i=1;i<=n;i++)
{
cin>>a[i];//一边输入
sum[i]=sum[i-1]+a[i];//一边计算前缀和
}