位运算就是快
#include<iostream>
#include<cstring>
using namespace std;
int a[20];
int sum[20];
int n;
int bit[100];
int getsum(int x)
{
int sum=0;
while(x)
{
sum+=bit[x];
x=x-(x&-x);
}
return sum;
}
void add(int x,int y)
{
while(y<=n)
{
bit[y]+=x;
y=y+(y&-y);
}
}
int main()
{
cout<<"请输入元素的个数:"<<endl;
cin>>n;
int i,j;
memset(bit,0,sizeof(bit));
for(i=1;i<=n;i++)
{
cin>>a[i];
add(a[i],i);
}
int ans;
cout<<"请输入前x个的和x:"<<endl;
int x;
cin>>x;
ans=getsum(x);
cout<<ans<<endl;
}