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常用模块介绍
Nov 21 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
利用Python抓取行政区划码的方法
Nov 28 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
python opencv 图像拼接的实现方法
Jun 27 Python
在Python中获取操作系统的进程信息
Aug 27 Python
Python Django 前后端分离 API的方法
Aug 28 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
Python脚本调试工具安装过程
Jan 11 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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
phpize的深入理解
2013/06/03 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
php三元运算符知识汇总
2015/07/02 PHP
MooTools 1.2介绍
2009/09/14 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python 整数越界问题详解
2019/06/27 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
python re的findall和finditer的区别详解
2020/11/15 Python
python爬虫请求头的使用
2020/12/01 Python
python飞机大战游戏实例讲解
2020/12/04 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
优秀员工推荐材料
2014/12/20 职场文书
证婚人致辞精选
2015/07/28 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS