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 相关文章推荐
python3调用windows dos命令的例子
Aug 14 Python
django实现用户注册实例讲解
Oct 30 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
Python文件操作基础流程解析
Mar 19 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
django和flask哪个值得研究学习
Jul 31 Python
如何真正的了解python装饰器
Aug 14 Python
Python使用xpath实现图片爬取
Sep 16 Python
pytorch学习教程之自定义数据集
Nov 10 Python
python os.listdir()乱码解决方案
Jan 31 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
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
Javascript String.replace的妙用
2009/09/08 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
带你了解python装饰器
2017/06/15 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
网络工程师个人的自我评价范文
2013/10/01 职场文书
超市中秋节活动方案
2014/02/12 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
思想品德评语大全
2014/12/31 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
英语读书笔记
2015/07/02 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python