# function counts number of ways you can
# partition n objects
# using parts up to m (assume m>=0)
n=int(input('enter n '))
m=int(input('enter m '))
def count(n, m):
if n==0:
return 1
elif m==0 or n<0:
return 0
else:
return count(n-m , m)+count(n , m-1)
print(count(n,m))
我不了解每个函数的输入和输出,我想学习这一点,我很沮丧。我希望有人能帮助我。我特别不明白它是如何从这个函数返回一个值,而不是两个值的。(这是我的第一篇文章,我不知道它的格式是否正确(。
我不了解每个函数的输入和输出
输入是对象n
的总数,以及可以拆分为m
的分区的最大大小。
输出是符合该条件的可能分区数的计数。
例如,如果n == 3
和m == 2
,则可能的分区是3个分区,每个分区有1个项目,或者2个分区,分别有2个和1个项目。所以输出是2。
我特别不明白它如何从这个函数返回一个值,而不是两个
基本情况显然每个都只返回一个值。其中之一返回1
,另一个返回0
。
如果它没有从一个基本情况中立即返回,它会递归地调用自己两次,其中一个参数的值较小。因此,每个递归调用都更接近一个基本情况。当这些返回时,它会将结果相加在一起,所以它只返回一个值,而不是两个值。