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网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
python自动12306抢票软件实现代码
Feb 24 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
Python BS4库的安装与使用详解
Aug 08 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
Python自动发送和收取邮件的方法
Aug 12 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
Python自动化测试基础必备知识点总结
Feb 07 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
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
浅谈PHP接收POST数据方式
2015/06/05 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
心扬JS分页函数代码
2010/09/10 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
angular 服务随记小结
2019/05/06 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
Python版的文曲星猜数字游戏代码
2013/09/02 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
浅谈python迭代器
2017/11/08 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python pygame实现方向键控制小球
2019/05/17 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
煤矿安全演讲稿
2014/05/09 职场文书
应届大专生自荐书
2014/06/16 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
部队个人年终总结
2015/03/02 职场文书
工程资料员岗位职责
2015/04/13 职场文书
人事任命通知书
2015/04/21 职场文书
教师师德承诺书2016
2016/03/25 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python