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模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
python matlibplot绘制多条曲线图
Feb 19 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
Dec 11 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
Python操作SQLite数据库过程解析
Sep 02 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
python 生成任意形状的凸包图代码
Apr 16 Python
Django celery异步任务实现代码示例
Nov 26 Python
教你使用pyinstaller打包Python教程
May 27 Python
python代码实现备忘录案例讲解
Jul 26 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 && 逻辑与运算符使用说明
2010/03/04 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
python3.5 email实现发送邮件功能
2018/05/22 Python
在双python下设置python3为默认的方法
2018/10/31 Python
对python中Json与object转化的方法详解
2018/12/31 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
应届本科生推荐信范文
2013/12/25 职场文书
产假请假条
2014/04/10 职场文书
旅游安全协议书
2014/04/21 职场文书
2014会计年终工作总结
2014/12/20 职场文书
防震减灾主题班会
2015/08/14 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
python多次执行绘制条形图
2022/04/20 Python