给出一些数a1,a2,a3,a4.....,an,如果一个连续的字串的和等于常数m,那么这个子串就是我们想要的,那么问题很简单,请求出这样字串的个数?
例如:数列为:3,4,1,6,2,5。m 的值为7时,连续字串{3,4},{1,6},{2,5}满足要求。
6 7 3 4 1 6 2 5 3 1 2 3 4
3 0
AC码:
#include<stdio.h> int main() { int n,m,i,j,count,sum; int num[1009]; while(~scanf("%d%d",&n,&m)) { count=0; sum=0; for(i=0;i<n;i++) { scanf("%d",&num[i]); } for(i=0;i<n;i++) { if(num[i]==m) { count++; continue; } if(num[i]>m) continue; sum=num[i]; for(j=i+1;j<n;j++) { sum+=num[j]; if(sum==m) { count++; break; } if(sum>m) break; } } printf("%d\n",count); } return 0; }
原文地址:http://blog.csdn.net/u012804490/article/details/24689133