
第一步:求出3的最高次幂是多少
guo=int(input("请输入一个正整数:"))
i=guo
a=0
while i>=0:
if 3**i<=guo:
a=i
break
i=i-1
print(a)#此语句为了看懂题目,题目中不需要打印出最高幂数
第二步:新建一个列表,用于存放3的幂。
b=a
m=0
s=[]
while True:
m=m+3**b
if m<=guo:
s.append(b)
else :
m=m-3**b
b=b-1
if m==guo:
break
print(s)#此语句为了看懂题目,题目中不需要打印出列表
第三步,根据列表中,定出3的幂数相加形式
w=""
for j in range(len(s)):
if j!=len(s)-1:
w=w+"3**"+str(s[j])+"+"
else:
w=w+"3**"+str(s[j])
print(str(guo)+"="+w)
如打印出来的实例

整个代码如下:
python
guo=int(input("请输入一个正整数:"))
i=guo
while i>=0:
if 3**i<=guo:
a=i
break
i=i-1
print(a)
b=a
m=0
s=[]
while True:
m=m+3**b
if m<=guo:
s.append(b)
else :
m=m-3**b
b=b-1
if m==guo:
break
w=""
for j in range(len(s)):
if j!=len(s)-1:
w=w+"3**"+str(s[j])+"+"
else:
w=w+"3**"+str(s[j])
print(str(guo)+"="+w)