题解 | #放苹果#
放苹果
http://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf
def count(pingguo, panzi):
if pingguo == 0 or panzi == 1 or pingguo == 1: #苹果没有或者只有一个,盘子只有一个,这三种情况只有一种放法
return 1
elif panzi > pingguo: #盘子比苹果多,肯定有盘子没有苹果,所以对题上的情况,那就是多余的盘子就是没用的
return count(pingguo, pingguo)
else: #另外的情况就是每个盘子都有苹果,多出来的苹果放在盘子中;至少有一个盘子没有,那就是所有的苹果放在panzi-1个盘子中
return count(pingguo - panzi, panzi) + count(pingguo, panzi - 1)
return
while True:
try:
apple, disk = map(int, input().split()) #使用map函数将split分开的字符串转换成int类型的
print(count(apple, disk))
except:
break
if pingguo == 0 or panzi == 1 or pingguo == 1: #苹果没有或者只有一个,盘子只有一个,这三种情况只有一种放法
return 1
elif panzi > pingguo: #盘子比苹果多,肯定有盘子没有苹果,所以对题上的情况,那就是多余的盘子就是没用的
return count(pingguo, pingguo)
else: #另外的情况就是每个盘子都有苹果,多出来的苹果放在盘子中;至少有一个盘子没有,那就是所有的苹果放在panzi-1个盘子中
return count(pingguo - panzi, panzi) + count(pingguo, panzi - 1)
return
while True:
try:
apple, disk = map(int, input().split()) #使用map函数将split分开的字符串转换成int类型的
print(count(apple, disk))
except:
break