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当中的字符串和编码
Apr 25 Python
在win和Linux系统中python命令行运行的不同
Jul 03 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
python如何实现视频转代码视频
Jun 17 Python
python读取Excel表格文件的方法
Sep 02 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
Python如何根据时间序列数据作图
May 12 Python
8种常用的Python工具
Aug 05 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
python使用pygame创建精灵Sprite
Apr 06 Python
python实现求纯色彩图像的边框
Apr 08 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
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
深入php处理整数函数的详解
2013/06/09 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
JavaScript中的值类型详细介绍
2014/12/29 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
Vee-Validate的使用方法详解
2017/09/22 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
在Python中操作字典之update()方法的使用
2015/05/22 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
文明教师事迹材料
2014/01/16 职场文书
超市开学活动方案
2014/03/01 职场文书
反邪教教育心得体会
2016/01/15 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
Feign调用全局异常处理解决方案
2021/06/24 Java/Android
HttpClient实现表单提交上传文件
2022/08/14 Java/Android