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 相关文章推荐
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
Apr 19 Python
python文件选择对话框的操作方法
Jun 27 Python
Python 控制终端输出文字的实例
Jul 12 Python
Tensorflow设置显存自适应,显存比例的操作
Feb 03 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
解决python图像处理图像赋值后变为白色的问题
Jun 04 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
Python3中FuzzyWuzzy库实例用法
Nov 18 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
php分享朋友圈的实现代码
2019/02/18 PHP
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
关于js datetime的那点事
2011/11/15 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
vue eslint简要配置教程详解
2019/07/26 Javascript
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
python Flask 装饰器顺序问题解决
2018/08/08 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
Django继承自带user表并重写的例子
2019/11/18 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
吉列剃须刀英国官网:Gillette英国
2019/03/28 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
单位介绍信范文
2014/01/18 职场文书
教师开学感言
2014/02/14 职场文书
工程售后服务承诺书
2014/05/21 职场文书
档案工作汇报材料
2014/08/21 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
环保建议书作文300字
2015/09/14 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js