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之Import 模块
Oct 13 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
python实现带声音的摩斯码翻译实现方法
May 20 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
Python如何使用OS模块调用cmd
Feb 27 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
Mar 18 Python
python 实现简易的记事本
Nov 30 Python
python opencv肤色检测的实现示例
Dec 21 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 Python
【超详细】八大排序算法的各项比较以及各自特点
Mar 31 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中路径问题的解决方案
2006/10/09 PHP
PHP 多进程 解决难题
2009/06/22 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
完善的jquery处理机制
2016/02/21 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
python转换摩斯密码示例
2014/02/16 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
python线程里哪种模块比较适合
2020/08/02 Python
容易被忽略的Python内置类型
2020/09/03 Python
Python 实现一个简单的web服务器
2021/01/03 Python
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
C#实现启动一个进程
2016/10/01 面试题
学生的自我鉴定范文
2013/10/24 职场文书
三年级音乐教学反思
2014/01/28 职场文书
现场施工员岗位职责
2014/03/10 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
小学一年级评语大全
2014/04/22 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
工作收入住址证明
2014/10/28 职场文书
2015年入党决心书
2015/02/05 职场文书
小班上学期个人总结
2015/02/12 职场文书
公司财务人员岗位职责
2015/04/14 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
施工现场安全管理制度
2015/08/05 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS