美文网首页
Golang求和为n 连续正数序列

Golang求和为n 连续正数序列

作者: ES_KYW | 来源:发表于2020-09-13 19:23 被阅读0次

    求和为n 连续正数序列

    题目:输入一个正数n,输出所有和为n 连续正数序列。
    例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。

    func sum(m int){
        var a,b int
        a = 1
        b = a + 1
        for m > b{ // sn = n*a1 + n*(n-1)*d/2  等差数列
            for a < b{ // 30 = 2*(5-1+1)*1 + (5-1+1)*(5-1-1+1) 12345
                if 2*m == 2*(b-a+1)*a +(b-a+1)*(b-a-1+1){
                    println(a,b)
                    break
                }
                a ++
            }
            a = 1
            b++
            if b > m  {
                break
            }
        }
    }
    结果
    1 5
    4 6
    7 8
    
    

    相关文章

      网友评论

          本文标题:Golang求和为n 连续正数序列

          本文链接:https://www.haomeiwen.com/subject/xaloektx.html