啊分


私信TA

用户名:761813936fzh

访问量:2072

签 名:

等  级
排  名 2877
经  验 2042
参赛次数 0
文章发表 31
年  龄 0
在职情况 学生
学  校 新乡学院
专  业

  自我简介:

解题思路:

注意事项:
注意二进制有可能超过8位,而且少于8位时,可能会抹掉多余的零,为了统一后面,为不满8位的补了零,还有一个比较小的问题(可能我没有脑子记成二进制从后往前读,傻了傻了)用一个递归算法思路很简单
参考代码:

def binfun(n):
    m=format(n, 'b');ind=m.rfind("1");s=""
    for i in range(ind):
        if m[i] =="1":
            if i==len(m)-2:s += "2+"
            elif i==len(m)-3:s += "2(2)+"
            else:s+="2("+str(binfun(len(m)-1-i))+")+"
    if ind==len(m)-2:s += "2"
    elif ind==len(m)-1:s+="2(0)"
    elif ind== len(m)-3:s += "2(2)"
    else:s+="2("+str(binfun(len(m)-1-ind))+")"
    return s
n=int(input().strip());print(binfun(n))


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区