假設有一數組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;
}