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大,所以没必要再去遍历后面的序列