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 相关文章推荐
浅谈用VSCode写python的正确姿势
Dec 16 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
python pandas写入excel文件的方法示例
Jun 25 Python
python+pygame实现坦克大战
Sep 10 Python
用python画一只可爱的皮卡丘实例
Nov 21 Python
Python实现不规则图形填充的思路
Feb 02 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
python IDLE添加行号显示教程
Apr 25 Python
Python如何合并多个字典或映射
Jul 24 Python
Python selenium环境搭建实现过程解析
Sep 08 Python
Python requests接口测试实现代码
Sep 08 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 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
我的群发邮件程序
2006/10/09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python通过opencv实现批量剪切图片
2017/11/13 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Python实现快速排序的方法详解
2019/10/25 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
英国在线定制百叶窗网站:Swift Direct Blinds
2020/02/25 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
大学辅导员事迹材料
2014/02/05 职场文书
环保倡议书100字
2014/05/15 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
民族精神月活动总结
2014/08/28 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS