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中用于计算指数的exp()方法
May 14 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
Python查看微信撤回消息代码
Jun 07 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
Python实现打砖块小游戏代码实例
May 18 Python
python网络应用开发知识点浅析
May 28 Python
python调试神器PySnooper的使用
Jul 03 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 Python
python常量折叠基础知识点讲解
Feb 28 Python
Python 批量下载阴阳师网站壁纸
May 19 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的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
屏蔽script注入小例子
2013/11/12 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
python程序变成软件的实操方法
2019/06/24 Python
Python  Django 母版和继承解析
2019/08/09 Python
python通过实例讲解反射机制
2019/10/17 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
基于FME使用Python过程图解
2020/05/13 Python
python中sys模块是做什么用的
2020/08/16 Python
详解python tcp编程
2020/08/24 Python
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
四议两公开实施方案
2014/03/28 职场文书
五水共治一句话承诺
2014/05/30 职场文书
战友聚会策划方案
2014/06/13 职场文书
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server