题目590-相同的和-nyoj20140816

#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 ",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 ",k);
}
    //system("pause");
    return 0;
}

原文地址:https://www.cnblogs.com/xiaziteng/p/3916110.html