思路分析:
代码:
k,w=map(int,input().split())
wd,wm=divmod(w,k)
def c(m,n):
if n>m:
return 0
if n<0:
return 0
s=1
for i in range(n):
s=s*(m-i)/(i+1)
return round(s)
s0=sum([c(2**k-1,i) for i in range(2,wd+1)])#开头为0
s1=sum([c(2**k-1-x0,wd) for x0 in range(1,2**wm)])#开头不为0
print(s0+s1)