Python 给定名称的组合数量
我要用给定的N个数来计算一个数(我们称之为C)的组合量。 我将使用递归公式。 但是有一个错误:Python 给定名称的组合数量,python,recursion,combinations,Python,Recursion,Combinations,我要用给定的N个数来计算一个数(我们称之为C)的组合量。 我将使用递归公式。 但是有一个错误: “TypeError:不支持+=:'int'和'NoneType'的操作数类型” 我的代码: def量(N,C,最新标称值=0): 如果C=最新标称值: 可能性+=金额(N,C-标称,标称) 返回可能性 我将感谢任何帮助!:) 函数返回None 因此,当您返回打印(“C应为正值”)时,您将不返回任何内容。因此,在posabilities+=amount(N,C-nominal,nominal)行中,
“TypeError:不支持+=:'int'和'NoneType'的操作数类型”
我的代码:
def量(N,C,最新标称值=0):
如果C<0:
返回打印(“C应为正”)
如果C==0:
返回打印(“1”)
如果不是N:
返回打印(“没有名称”)
可能性=0
对于N中的标称值:
如果标称值>=最新标称值:
可能性+=金额(N,C-标称,标称)
返回可能性
我将感谢任何帮助!:) 函数返回None
因此,当您返回打印(“C应为正值”)
时,您将不返回任何内容。因此,在posabilities+=amount(N,C-nominal,nominal)
行中,您的代码引发异常函数返回None
因此,当您
返回打印(“C应为正值”)
时,您将不返回任何内容。因此,在可能性+=金额(N,C-标称,标称)
行中,您的代码引发异常谢谢!我怎样才能避免这个问题?谢谢!我怎样才能避免这个问题?
def amount(N, C, latest_nominal = 0):
if C < 0:
return print("C should be positive")
if C == 0:
return print("1")
if not N:
return print("There are no nominals")
possibilities = 0
for nominal in N:
if nominal >= latest_nominal:
possibilities += amount(N, C-nominal, nominal)
return possibilities