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

下面再看一个小实例:

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

程序源代码:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
l = []
for i in range(3):
 x = int(raw_input('integer:\n'))
 l.append(x)
l.sort()
print l

以上实例输出结果为:

integer:
8
integer:
5
integer:
6
[5, 6, 8]

总结

以上就是小编分享给大家的有关Python的实例,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Python定时器实例代码、Python生成数字图片代码分享、Python中enumerate函数代码解析等,有什么问题可以随时留言,小编会及时回复大家的。

Python 相关文章推荐
python实现绘制树枝简单示例
Jul 24 Python
Python编程中的异常处理教程
Aug 21 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
原生python实现knn分类算法
Oct 24 Python
解决Python3下map函数的显示问题
Dec 04 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python代码实现猜拳小游戏
Nov 30 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 Python
python基础之while循环语句的使用
Apr 20 Python
python 管理系统实现mysql交互的示例代码
Dec 06 Python
django定期执行任务(实例讲解)
Nov 03 #Python
python嵌套字典比较值与取值的实现示例
Nov 03 #Python
基于Python os模块常用命令介绍
Nov 03 #Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 #Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 #Python
python使用PyCharm进行远程开发和调试
Nov 02 #Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 #Python
You might like
深入分析PHP引用(&)
2014/09/04 PHP
php ajax confirm 删除实例详解
2019/03/06 PHP
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
node app 打包工具pkg的具体使用
2019/01/17 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
[03:46]显微镜下的DOTA2第七期——满血与残血
2014/06/20 DOTA
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
python tkinter界面居中显示的方法
2018/10/11 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
Python列表与元组的异同详解
2019/07/02 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
简单了解Django项目应用创建过程
2020/07/06 Python
python如何快速生成时间戳
2020/07/21 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
高中三年学习生活的自我评价
2013/10/10 职场文书
文秘专业毕业生就业推荐信
2013/11/08 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
机关保密工作承诺书
2015/05/04 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书