我们知道:1+2=3;
4+5=9;
2+3+4=9;
等式左边都是两个以上连续的自然数相加,那么是不是所有的整数都可以写成这种形式呢?
写一个程序,对于一个32位正整数,输出它所有的连续自然数之和的算式。
可以发现任意自然数序列其实是公差为1的等差数列,那么数列前N项和公式有a1*n +n*(n-1)/2 = sn,而这里sn = 输入的正整数input。通过分析a1只需在集合[1,input/2)中,把上式等效变形为n*n+(2a1-1)n-2input = 0,n的取值为2a分之负b加减根号下b方减4ac,如果n为一个正整数,那么符合条件输出。