假设有一数组x[],有n个元素,每一个都大于0.;称x[0]+x[1]+...+x[i]为前置和,而x[j]+x[j+1]+...+x[n-1]为后置和。试编写一程序,求出x[]中有多少组相同的前置和与后置和。
#include<stdio.h>
void headtail(int a[],int n)
{
int l=0,h=n-1;
int left=a[l],right=a[h];
while(l<=h)
{
if(left<right)
{
l++;
left+=a[l];
}
else if(right<left)
{
h--;
right+=a[h];
}
else
{
printf("the same sum is:%d\n",left);
l++;
h--;
left+=a[l];
right+=a[h];
}
}
}
int main()
{
//等值首尾和
int x[]={3,6,2,1,4,5,2};
headtail(x,sizeof(x)/sizeof(int));
return 0;
}