题目描述
对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M。
思路
通过等差数列公式变式一下,枚举然后判断一下就可以了
O(n/2)
#includeint main() { int n; scanf("%d",&n); n=n*2; for (int i=n/4;i>1;i--) { if (n%i==0) { int t=n/i; if (t-i+1>0&&(t-i+1)/2+(t+i-1)/2==t) printf("%d %d\n",(t-i+1)/2,(t+i-1)/2); } } }
Comments NOTHING