poj2140---herd sums

#include<stdio.h>

#include<stdlib.h>



int main()

{

    int n,cnt=0,i,j;

    scanf("%d",&n);

    for(i=1;i <= n/2+1;i++)

    {

        int sum=0;

        for(j=i;;j++)

        {

            sum+=j;

            if(sum == n)

            {

                cnt++;

                break;

            }

            if(sum>n)

                break;

        }

    }

    printf("%d\n",cnt+1);

    return 0;

}
//我不能分析出i为什么<=n/2+1,但是从n/2+1之后的序列,如果是单个,那么比n小,如果是连续的序列就都比n大,所以没必要再去遍历后面的序列

你可能感兴趣的:(poj)