Python 把数字除以和

Python 把数字除以和,python,algorithm,math,Python,Algorithm,Math,用户输入数字c和分解数N。程序必须将数字分解为等于分解数的数字之和,但这些数字之间的差值不得大于1 例如: c = 28 n = 3 print 9,9,10 c = 30 n = 3 print 10,10,10 c = 24 n = 7 print 3,3,3,3,4,4,4 不知道是哪个算法实现了这个数字加1需要取c模n次。这个数本身需要取n减去c的模n次 如果将c写成c=n*q+r,r小于n,则可以按如下方式重写: c = n * q + r c = (n - r + r) * q

用户输入数字c和分解数N。程序必须将数字分解为等于分解数的数字之和,但这些数字之间的差值不得大于1

例如:

c = 28 n = 3
print 9,9,10

c = 30 n = 3
print 10,10,10

c = 24 n = 7
print 3,3,3,3,4,4,4

不知道是哪个算法实现了这个

数字加1需要取c模n次。这个数本身需要取n减去c的模n次

如果将c写成c=n*q+r,r小于n,则可以按如下方式重写:

c = n * q + r
c = (n - r + r) * q + r
c = (n - r) * q + r * q + r
c = (n - r) * q + r * (q + 1)
在代码中,使用列表表示结果:

def split_in_parts(c, n):
    r = c % n
    return [c // n] * (n - r) + [c // n + 1] * r

c = 28
n = 3
print(split_in_parts(c, n))

从你的例子中,你有一些线索。对于c=28,n=3,c/n=9.333;c=30,n=3,c/n=10;对于c=24,n=7,24/7=3.428。使用的数字是intc/n和intc/n+1,它们将是偶数和奇数。你也知道c是偶数还是奇数。另外,检查总数n以及较小值与n的比率。c=24,n=7;你有4'3的7个总数;4/7 = 0.571... 这可能是一条路要走。当然,您可以通过检查所有组合来强制执行此操作;3,4,4,4,4,4,4 ; 然后是3,3,4,4,4,4,4,等等。真的谢谢你,我想了很久这个算法,但是我什么都想不出来