|
发表于 2018-3-1 22:32:35
|
显示全部楼层
#Magic Power of Three
def Index_three(n):
if n<=0:
return False
i = 0
while True:
if pow(3,i)<=n<pow(3,i+1):
return i,i+1
i += 1
#print(Index_three(0))
def add_sub(n):
if n<=0:
return "请输入大于0的数!!!"
elif n==1:
return "1"
elif n>1:
index_n = Index_three(n)
if n == pow(3,index_n[0]):
return "{}".format(n)
else:
if n<=(pow(3,index_n[1])//2):
return "{0} + {1}".format(pow(3,index_n[0]),add_sub(n-pow(3,index_n[0])))
else:
add_sub_str = add_sub(pow(3,index_n[1])-n)
if len(add_sub_str)>1:
#print(add_sub_str[2])
for i in range(len(add_sub_str)):
if add_sub_str[i] == '+':
add_sub_str = add_sub_str[:i] + '-' + add_sub_str[i+1:]
elif add_sub_str[i] == '-':
add_sub_str = add_sub_str[:i] + '+' + add_sub_str[i+1:]
return "{0} - {1}".format(pow(3,index_n[1]),add_sub_str)
#print(add_sub(3))
def main():
for i in range(12345,12346):
add_sub_str = "{0} = {1} ".format(i,add_sub(i))
print(add_sub_str)
return
if __name__ == "__main__":
main() |
|