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的dict,set,list,tuple应用详解
Jul 24 Python
开始着手第一个Django项目
Jul 15 Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
python url 参数修改方法
Dec 26 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Python如何优雅获取本机IP方法
Nov 10 Python
Python字符串格式化输出代码实例
Nov 22 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
Python面向对象特殊属性及方法解析
Sep 16 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代码
2008/09/10 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
如何实现JS函数的重载
2006/09/22 Javascript
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
JavaScript 变量命名规则
2009/09/23 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
详解python-图像处理(映射变换)
2019/03/22 Python
详解python 中in 的 用法
2019/12/12 Python
Python 实现向word(docx)中输出
2020/02/13 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
金融专业推荐信
2013/11/14 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
超市创业计划书
2014/04/24 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
服务员岗位职责
2015/02/03 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
原告离婚代理词
2015/05/23 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
python实现监听键盘
2021/04/26 Python