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 异常处理实例详解
Mar 12 Python
python中while循环语句用法简单实例
May 07 Python
你真的了解Python的random模块吗?
Dec 12 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
python单例模式实例解析
Aug 28 Python
Python中如何导入类示例详解
Apr 17 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
pandas的相关系数与协方差实例
Dec 27 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
python基于pygame实现飞机大作战小游戏
Nov 19 Python
python 如何引入协程和原理分析
Nov 30 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 while循环得到循环次数
2013/10/26 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
学习python的几条建议分享
2013/02/10 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
Python json读写方式和字典相互转化
2020/04/18 Python
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
文员自我评价怎么写
2013/09/19 职场文书
公司员工的自我评价范例
2013/11/01 职场文书
学习十八大精神心得体会
2013/12/31 职场文书
在校生自我鉴定
2014/01/23 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript