话说大诗人李白,一生好饮。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。
他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。
则:babaabbabbabbbb 就是合理的次序。
像这样的答案一共有多少呢?
请你计算出所有可能方案的个数(包含题目给出的)
参考答案一:
num = 2**10-1
sums = 0
while (num<2**15):
stra = str(bin(num))[2:].zfill(15)
if stra.count('1') == 10:
s = 2
for c in stra:
if c == '0': s *= 2
elif c == '1': s -= 1
if s == 0: sums += 1
num += 2
print(sums)
参考答案二:
plan = 0
def f(store, flower, wine):
global plan
if store > 0:
f(store - 1, flower, wine * 2)
if flower > 0:
f(store, flower - 1, wine - 1)
if (store == 0 and flower == 1 and wine == 1):
plan += 1
return plan
print(f(5, 10, 2))