Python实现1-9数组形成的结果为100的所有运算式的示例,python1-9
Python实现1-9数组形成的结果为100的所有运算式的示例,python1-9
问题:
编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34–5 + 67–8 + 9 = 100。
from functools import reduce operator = { 1: '+', 2: '-', 0: '' } base = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] def isHundred(num): #转化为8位3进制数,得到运算符数组 arr = [] for index in range(8): index = 7 - index arr.append(num // (3 ** index)) num -= (num // (3 ** index)) * (3 ** index) arr = map(lambda x: operator[x], arr) #合并得到运算式 formula = reduce(lambda x, y: x + y, zip(base, arr)) formula = list(formula) formula.append('9') formula = ''.join(formula) #计算运算式结果 res = eval(formula) return res, formula if __name__ == '__main__': #所有可能的结果 total = 3 ** 8 for i in range(total): res, formula = isHundred(i) if res == 100: print(formula+' = 100')
结果:
/usr/bin/python3.5 /home/kang/workspace/Qt3d/test.py 123+45-67+8-9 = 100 123+4-5+67-89 = 100 123-45-67+89 = 100 123-4-5-6-7+8-9 = 100 12+3+4+5-6-7+89 = 100 12+3-4+5+67+8+9 = 100 12-3-4+5-6+7+89 = 100 1+23-4+56+7+8+9 = 100 1+23-4+5+6+78-9 = 100 1+2+34-5+67-8+9 = 100 1+2+3-4+5+6+78+9 = 100
以上这篇Python实现1-9数组形成的结果为100的所有运算式的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持帮客之家。
相关内容
- 基于Python os模块常用命令介绍,pythonos
- python嵌套字典比较值与取值的实现示例,python嵌套字典
- Python算法输出1-9数组形成的结果为100的所有运算式,
- python Pygame的具体使用讲解,pythonpygame讲解
- 简单了解Python中的几种函数,python几种函数
- Python编程django实现同一个ip十分钟内只能注册一次,p
- Python实现一个简单的验证码程序,python实现验证码
- Python通过命令开启http.server服务器的方法,pythonhttp.se
- 用Python登录好友QQ空间点赞的示例代码,python示例代码
- 利用Python循环(包括while&for)各种打印九九乘法表的实
评论关闭