SYH


私信TA

用户名:SuiyuanH

访问量:25300

签 名:

学啥不好学电脑啊!!!!!!

等  级
排  名 367
经  验 5060
参赛次数 0
文章发表 42
年  龄 0
在职情况 学生
学  校 加里敦大学
专  业 跳小神

  自我简介:

菜鸡一枚 错误一堆 如有发现 往死里怼

 

0.0分

4 人评分

  评论区

这个是50%的错误,楼主能帮忙看看吗
import math
k,w=map(int,input().split(' '))
def numr(k,w):
    wd,wm=divmod(w,k)
    num1=0
    num2=0
    for i in range(2,wd+1):
        num1+=c(2**k-1,i)
    for val in range(1,pow(2,wm)): #r的首位取值范围:1-(2^(w%k)-1)
        num2+=c(2**k-1-val,wd)
    print(num1+num2)

def c(n,m):
    if m>n:
        return 0
    if m<0:
        return 0
    sum=1
    i=1
    while i<=m:
        sum=sum*n
        n-=1
        i+=1
    j=1
    while j<=m:
        sum=sum//j
        j+=1
    return sum

         
numr(k,w)
2019-12-27 20:45:55
  • «
  • 1
  • »