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 除法小技巧
Sep 06 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
python框架中flask知识点总结
Aug 17 Python
在python 中实现运行多条shell命令
Jan 07 Python
python简单实现AES加密和解密
Mar 28 Python
利用python求积分的实例
Jul 03 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
python设置环境变量的作用整理
Feb 17 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
python数据可视化使用pyfinance分析证券收益示例详解
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
信用卡效验程序
2006/10/09 PHP
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
php中session退出登陆问题
2014/02/27 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
微信小程序如何利用getCurrentPages进行页面传值
2019/07/01 Javascript
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
在pycharm中显示python画的图方法
2019/08/31 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
解决img标签上下出现间隙的方法
2016/12/14 HTML / CSS
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
事业单位分类改革实施方案
2014/03/21 职场文书
2014春晚主持词
2014/03/25 职场文书
工商局个人工作总结
2015/03/03 职场文书
2015年酒店工作总结
2015/04/28 职场文书
中学音乐课教学反思
2016/02/18 职场文书
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android