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对两个有序列表进行合并和排序的例子
Jun 13 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
快速实现基于Python的微信聊天机器人示例代码
Mar 03 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
基于python实现简单日历
Jul 28 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
python切割图片的示例
Nov 12 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
详解Python小数据池和代码块缓存机制
Apr 07 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中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
JavaScript面向对象编程
2008/03/02 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
详解 vue.js用法和特性
2017/10/15 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
护理职业应聘自荐书
2013/09/29 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
党风廉设责任书
2014/04/16 职场文书
路政管理求职信
2014/06/18 职场文书
临时租车协议范本
2014/09/23 职场文书
反邪教观后感
2015/06/11 职场文书
篮球拉拉队口号
2015/12/25 职场文书
Python实现单例模式的5种方法
2021/06/15 Python
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis