给出名义的组合数量

时间:2017-01-11 21:02:51

标签: python recursion combinations

我要使用给定的N个数来计算数字组合的数量(让我们称之为C)。 我要使用递归公式。 但是有一个错误:
" TypeError:+ =:' int'不支持的操作数类型和' NoneType' "
我的代码:

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  

我将不胜感激任何帮助! :)

1 个答案:

答案 0 :(得分:4)

print()函数返回None

因此,当您执行return print("C should be positive")时,您将返回无。因此,在possibilities += amount(N, C-nominal, nominal)行,您的代码会引发异常