解题思路:
注意事项:
参考代码:
from math import *
# 生成正常的列表
def func1(m):
list1=[]
while 1:
a=int(log(m,2))
cha=m-2**a
m=cha
if m==0:
list1.append(a)
return func2(list1)
else:
list1.append(a)
# 对列表进行括号处理
def func2(listx):
str1=""
for i in list(map(str,listx)):
if i=="1":
str1+=f"2+"
else:
str1+=f"2({i})+"
return str1[:-1]
#只需要一次转换
def func3(list2):
for i in range(len(list2)):
index=1
if list2[i]=="(" and list2[i+2]!=")":#小心
while 1:
if list2[i+index]!=")":
index+=1
else:
# 拼接
listx1=list2[:i+1]
listx2=[''.join(list2[i+1:i+index])]
listx3=list2[i+index:]
list2=listx1+listx2+listx3
return list2
return list2
num=eval(input())
listso=[]
list2=func3(list(func1(num)))
listso.append(list2)
while 1:
list2=func3(listso[-1])
listso.append(list2)
if listso[-1]==listso[-2]:
break
# 开始处理 转换
for w in range(10):
for k in range(len(list2)):
if list2[k]=="(" and int(list2[k+1])>2:
v=int(list2[k+1])
str3=func1(v)
# 替换
list2[k+1]=str3
# 拼接
list2=list(''.join(list2))
print(''.join(list2))
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:778 |
C语言训练-排序问题<1> (C语言代码)浏览:636 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:701 |
C语言训练-数字母 (C语言代码)浏览:648 |
循环入门练习5 (C语言代码)浏览:907 |
printf基础练习2 (C语言代码)浏览:547 |
数组与指针的问题浏览:760 |
企业奖金发放 (C语言代码)浏览:2462 |
整除的尾数 (C语言代码)浏览:852 |
母牛的故事 (C语言代码)浏览:519 |