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实现协同过滤的教程
Apr 08 Python
Python多维/嵌套字典数据无限遍历的实现
Nov 04 Python
用Python实现随机森林算法的示例
Aug 24 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
pytorch中图像的数据格式实例
Feb 11 Python
keras模型保存为tensorflow的二进制模型方式
May 25 Python
Python正则表达式高级使用方法汇总
Jun 18 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 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
解析link_mysql的php版
2013/06/30 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
javascript 函数速查表
2010/02/07 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
Python中实现对list做减法操作介绍
2015/01/09 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
浅析python 字典嵌套
2020/09/29 Python
python 通过exifread读取照片信息
2020/12/24 Python
电大毕业生自我鉴定
2014/04/10 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
2014年学前班工作总结
2014/12/08 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
初中政治教师教学反思
2016/02/23 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
创业计划书之面包店
2019/09/17 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
MySQL 全文检索的使用示例
2021/06/07 MySQL