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实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
对于Python编程中一些重用与缩减的建议
Apr 14 Python
使用python实现省市三级菜单效果
Jan 20 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
解决Tensorflow安装成功,但在导入时报错的问题
Jun 13 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
Python猫眼电影最近上映的电影票房信息
Sep 18 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
Oct 15 Python
python numpy中multiply与*及matul 的区别说明
May 26 Python
Python实现归一化算法详情
Mar 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
php array_merge下进行数组合并的代码
2008/07/22 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
Atom的python插件和常用插件说明
2018/07/08 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
2020/04/22 Python
python识别验证码的思路及解决方案
2020/09/13 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
2014年大学生自我评价
2014/01/19 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
文化产业实施方案
2014/06/07 职场文书
节水倡议书
2015/01/19 职场文书
唐山大地震的观后感
2015/06/05 职场文书
导游词之沈阳植物园
2019/11/30 职场文书