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 相关文章推荐
python3实现短网址和数字相互转换的方法
Apr 28 Python
Python中super关键字用法实例分析
May 28 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
python docx 中文字体设置的操作方法
May 08 Python
基于Python List的赋值方法
Jun 23 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
Python实现弹球小游戏
Aug 01 Python
Python图像读写方法对比
Nov 16 Python
python爬取天气数据的实例详解
Nov 20 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中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
python安装sklearn模块的方法详解
2020/11/28 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
土建施工员岗位职责
2014/07/16 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
员工考勤管理制度
2015/08/06 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
python中对列表的删除和添加方法详解
2022/02/24 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL