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发送邮件示例(支持中文邮件标题)
Feb 16 Python
用Python计算三角函数之atan()方法的使用
May 15 Python
Flask数据库迁移简单介绍
Oct 24 Python
Python使用zip合并相邻列表项的方法示例
Mar 17 Python
Python应用库大全总结
May 30 Python
django admin后台添加导出excel功能示例代码
May 15 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
Mar 31 Python
Python中Selenium库使用教程详解
Jul 23 Python
Python3.7安装pyaudio教程解析
Jul 24 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重新实现PHP脚本引擎内置函数
2007/03/06 PHP
php操作excel文件 基于phpexcel
2010/07/02 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python 字符串换行的多种方式
2018/09/06 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
keras 多任务多loss实例
2020/06/22 Python
浅谈python锁与死锁问题
2020/08/14 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
学生自我鉴定范文
2013/10/04 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
顶撞老师检讨书
2014/02/07 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
学校安全生产承诺书
2014/05/23 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
如何撰写创业策划书
2019/06/27 职场文书
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle
Python中tqdm的使用和例子
2022/09/23 Python