题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=22889
题意:
输入一组数,把它分成两半,使两半的数的和都是相等的,有几种分发。
案例:
input
9
1 5 -6 7 9 -16 0 -2 2
output
3
input
2
0 0
output
1
思路分析:
非常简单,直接循环,如果两边都相等就acount++。
源代码如下:
1 #include<iostream> 2 #include<cstdio> 3 #define MAX 100005 4 using namespace std; 5 int acount,a[MAX]; 6 int main() 7 { 8 int n,sum=0,sum1,i; 9 acount=0;sum1=0; 10 scanf("%d",&n); 11 for(i=0;i<n;i++) 12 { 13 scanf("%d",&a[i]); 14 sum+=a[i]; 15 } 16 for(i=0;i<n-1;i++) 17 { 18 sum1+=a[i]; 19 if(sum1==sum-sum1) 20 acount++; 21 } 22 cout<<acount<<endl; 23 return 0; 24 }