逆等差序列问题

问题

和为n 连续正数序列

问题分析

此问题为等差序列求和的逆计算
等差学列求和公式为:S = na + dn(n-1)/2 (n为序列个数,a为序列最小值,d为等差值,此处d=1)
转化后可得 a = (2
S-n(n-1))/2n
即可得条件((2S-n(n-1))/2n) % 1 == 0 && (2S-n(n-1))/2n > 0 && n > 1 && a > 0

算法实现

def getContinuousSequence(number=3):
    if number <1:
        raise Exception, "参数错误"

    data = []
    for n in range(2, number):

        a = (number-(n*(n-1)/2))*1.00/n
        if a % 1 == 0 and a > 0:
            a = int(a)
            data.append(range(a, a+n))
    return data


if __name__ == '__main__':
    print getContinuousSequence(13)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,157评论 1 19
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,417评论 0 2
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,059评论 0 13
  • 7月份忙着上班,中间还有几次下班之后步行去购物。8月份忙着改变,忙着尝试,只有空闲时间去匆匆买些水果。9月份忙着学...
    遇见子梦阅读 98评论 0 0
  • 1. 2013年5月17日 《乡愁》: 夜來雨儿下多少, 窗台吊兰披露珠。 鸟儿啾啾欢儿曲, 游子更思山水秀。
    桓舟子阅读 126评论 0 0