Python实现1-9数组形成的结果为100的所有运算式的示例


Posted in Python onNovember 03, 2017

问题:

编写一个在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 相关文章推荐
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
python用Pygal如何生成漂亮的SVG图像详解
Feb 10 Python
Python及PyCharm下载与安装教程
Nov 18 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
Sanic框架流式传输操作示例
Jul 18 Python
深入理解Python异常处理的哲学
Feb 01 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
python分数表示方式和写法
Jun 26 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
python 伯努利分布详解
Feb 25 Python
python数据类型可变不可变知识点总结
Mar 06 Python
Python异常处理机制结构实例解析
Jul 23 Python
python使用PyCharm进行远程开发和调试
Nov 02 #Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 #Python
详解Python里使用正则表达式的ASCII模式
Nov 02 #Python
python安装numpy&安装matplotlib& scipy的教程
Nov 02 #Python
python中实现精确的浮点数运算详解
Nov 02 #Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 #Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 #Python
You might like
德生S2000电路分析
2021/03/02 无线电
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
python实现杨辉三角思路
2017/07/14 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
python3爬虫中异步协程的用法
2020/07/10 Python
python ssh 执行shell命令的示例
2020/09/29 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
介绍一下Ruby中的对象,属性和方法
2012/07/11 面试题
机电工程专业应届生求职信
2013/10/03 职场文书
淘宝客服自我总结鉴定
2014/01/25 职场文书
环保建议书500字
2014/05/14 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
公司财务部岗位职责
2015/04/14 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
学生安全责任协议书
2016/03/22 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python