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 03 Python
python中Apriori算法实现讲解
Dec 10 Python
Python enumerate索引迭代代码解析
Jan 19 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
Python 打印中文字符的三种方法
Aug 14 Python
python实现简单登陆系统
Oct 18 Python
python 自动批量打开网页的示例
Feb 21 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
用Python生成HTML表格的方法示例
Mar 06 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
Python 实现将某一列设置为str类型
Jul 14 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中的字符串函数
2006/10/09 PHP
php变量作用域的深入解析
2013/06/03 PHP
php 强制下载文件实现代码
2013/10/28 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP微商城开源代码实例
2019/03/27 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
js Date概念详细介绍
2013/11/22 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
全球虚拟主机商:HostGator
2017/02/06 全球购物
禁止高声喧哗的标语
2014/06/11 职场文书
学前教育专业求职信
2014/09/02 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
库房管理员岗位职责
2015/02/12 职场文书
出国留学单位推荐信
2015/03/26 职场文书
楚门的世界观后感
2015/06/03 职场文书
致运动员赞词
2015/07/22 职场文书
大学开学感言
2015/08/01 职场文书
详解Python牛顿插值法
2021/05/11 Python
python函数的两种嵌套方法使用
2022/04/02 Python