def calculate_add_combinations_num(n):
'''
Description:得到一个整数可以由几个整数相加得到的组合
Author:lipeng
Args:
n:num
Version:.1.0
f(n)=f(n-1)+num
'''
tmplist=[] #存放计算中产生的一个组合
reslist=[] #存放组合结果
def NumtoN(n,tmplist,start):
'''
Description:计算组合函数
'''
if n==1:
tmp = copy.deepcopy(tmplist)
tmp.append(1)
reslist.append(tmp)
else:
for i in range(start,int(n/2)+1):
tmplist.append(i)
NumtoN(n-i,tmplist,i)
tmplist.remove(tmplist[-1])
tmp = copy.deepcopy(tmplist)
tmp.append(n)
reslist.append(tmp)
NumtoN(n,tmplist,1)
return reslist[:-1]
if __name__=='__main__':
print(calculate_add_combinations_num(4))
09-15
528