描述
把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。
数据范围:
输入描述:
输入两个int整数
输出描述:
输出结果,int型
思路:
看了下其他uu的分析,借用公式写的~
step1:创建函数,首先设置边界,如果m<0或者n<=0,返回错误;如果m==0并且n>=1,只有一种可能;如果n==1,也是只有一种可能;其他情况下,回调fn(m,n-1) + fn(m-n,n);
输入两个整型的数,且空格分开,输出打印执行函数的结果
代码如下:
def fn(m,n):
if m < 0 or n <= 0:
return False
elif m == 0 and n >= 1:
return 1
elif n == 1:
return 1
else:
return fn(m,n-1) + fn(m-n,n)
m,n = list(map(int,input().split()))
print(fn(m,n))