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实现探测socket和web服务示例
Mar 28 Python
Python工程师面试必备25条知识点
Jan 17 Python
Python2中文处理纪要的实现方法
Mar 10 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
django-filter和普通查询的例子
Aug 12 Python
python多进程并行代码实例
Sep 30 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
python中time包实例详解
Feb 02 Python
浅析Python中的随机采样和概率分布
Dec 06 Python
基于Python编写一个监控CPU的应用系统
Jun 25 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实现状态模式
2015/12/07 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python实现汉诺塔算法
2021/03/01 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
ajax是什么及其工作原理
2012/02/08 面试题
初二物理教学反思
2014/01/29 职场文书
八一慰问活动方案
2014/02/07 职场文书
留学生求职信
2014/06/03 职场文书
计划生育目标责任书
2015/05/09 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
Python中的程序流程控制语句
2022/02/24 Python
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers