一种思路
查看原帖
一种思路
358860
liangfeng楼主2023/11/19 12:35
import math
def log2(x):
   return math.log(x,2)
def devide(x):
   s=[]
   if x==1:
      return ["2(0)"]
   for i in range(1,x):
      if 2**i>x/2:
         x=x-2**i
         if i==1:
            s.append("2")
         else :s.append("2(");s.append(i);s.append(")")
         if x==0:
            return s
         else :
            s.append("+")
            s.append(x)
         return s
   return s
def insert_elements(lst, index, items):
    for item in items:
        lst.insert(index, item)
        index += 1
xx=input()
x=[];x.append(int(xx))
flag=1
while(flag):
   flag=0
   i=0
   while(i<len(x)):
      if isinstance(x[i],int) and x[i]!=0 and x[i]!=2 :
         s=devide(x[i])
         x.pop(i)
         insert_elements(x,i,s)
         flag=1
         i+=1
      else:i+=1
for thing in x:
   print(thing,end="")

这个思路怎么说

大家评价一下怎么改进,谢谢^_^
2023/11/19 12:35
加载中...