#include<stdio.h>
int main()
{
int n,a,b[1010],i,j,cnt,sum;
while(scanf("%d%d",&n,&a)!=EOF)
{
cnt=0;
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<n;i++)
{sum=0;
for(j=i;sum<a;j++)
sum+=b[j];
if(sum==a)
cnt++;
}
printf("%d\n",cnt);
}
}
这道题有问题,按它说的意思写的代码提交不对,上面这个是考虑到
单个字符的代码,下面那个是我写的按照本题的正常逻辑写的代码。
#include <stdio.h>
//#include <stdlib.h>
int main()
{
int m,n;
int a[100];
int sum,k,i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
k=0;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{sum=a[i];
for(j=i+1;j<n;j++)
{
sum=sum+a[j];
if(sum>m)
break;
else if(sum==m)
k++;
}
}
printf("%d\n",k);
}
//system("pause");
return 0;
}
题目590-相同的和-nyoj20140816
时间: 2024-10-15 19:21:45