Python实现整数均分

将整数m划分为n个整数,使得到的整数之间的差值不超过1,结果按照升序排列。

例如输入55, 6,返回[9, 9, 9, 9, 9, 10]。

Python代码:

def splitInteger(m, n):
    assert n > 0
    quotient = m / n
    remainder = m % n
    if remainder > 0:
        return [quotient] * (n - remainder) + [quotient + 1] * remainder
    if remainder < 0:
        return [quotient - 1] * -remainder + [quotient] * (n + remainder)
    return  [quotient] * n

下面列举了另一种实现方法:

def splitInteger(m, n):
    assert n > 0
    quotient = m / n
    remainder = m % n
    ans = [quotient] * n
    for x in range(n - 1, -1, -1):
        if remainder < 0:
            ans[x] -= 1
            remainder += 1
        elif remainder > 0:
            ans[x] += 1
            remainder -= 1
        else:
            break
    return ans

 

本文链接:http://bookshadow.com/weblog/2015/03/04/python-split-integer/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码

Pingbacks已关闭。

评论
  1. 奶爸网 naiba.im 奶爸网 naiba.im 发布于 2015年3月7日 15:55 #

    来也没什么,就是给你点点AD

张贴您的评论