问题:

编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34–5 + 67–8 + 9 = 100。

from functools import reduceoperator = {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 - indexarr.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, formulaif __name__ == '__main__':#所有可能的结果total = 3 ** 8for 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

转载于:https://www.cnblogs.com/wkcagd/p/7775102.html

Python实现1-9数组形成的结果为100的所有运算式相关推荐

  1. Python Numpy多维数组.sum(axis=0/1/2...) 详解

    Python Numpy多维数组.sum(axis=0/1/2-) 详解 numpy中axis取值的说明 首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维 ...

  2. python 调用 c 生成数组_python调用c++传递数组的实例

    如下所示: input = c_int * 4 # 实例化一个长度为2的整型数组 input = input() # 为数组赋值(input这个数组是不支持迭代的) input[0] = 11 inp ...

  3. 【Python】Numpy扩充数组函数之repeat和tile用法

    2019独角兽企业重金招聘Python工程师标准>>> [Python]Numpy扩充数组函数之repeat和tile用法,有需要的朋友可以参考下. 用repeat和tile扩充数组 ...

  4. 初学Python(二)——数组

    初学Python(二)--数组 初学Python,主要整理一些学习到的知识点,这次是数组. # -*- coding:utf-8 -*- list = [2.0,3.0,4.0] #计算list长度 ...

  5. python中链表和数组_Python

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x Python 算法 03-- 数组和链表(下)-1.jpg (93.27 KB, 下载次数: 0) 2020- ...

  6. python数组随机打乱_对Python random模块打乱数组顺序的实例讲解

    在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample ...

  7. python数组扩充_【Python】Numpy扩充数组函数之repeat和tile用法,

    [Python]Numpy扩充数组函数之repeat和tile用法,有需要的朋友可以参考下. 用repeat和tile扩充数组元素,例如 >>> import numpy as np ...

  8. python实现文件转数组

    python实现文件转数组 import numpy as np def txt_to_list(input_path):''':param input_path: '输入txt文件路径':retur ...

  9. Python数据分析 找出数组中每行(或每列)中指定的百分位数 numpy.percentile()

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python数据分析 找出数组中每行(或每列) 中指定的百分位数 numpy.percent ...

最新文章

  1. win10+centos7+Anaconda3+python+pytorch
  2. .exp文件_exp及expdp的主要区别及常用的导入导出操作
  3. 海外应用市场排名前列的VivaVideo All in阿里云
  4. IDC数据中心机房该如何节能
  5. iptables删除所有规则_如何解决iptables删除命令中遇到的问题
  6. 反思开发新需求节省时间的方法
  7. JAVA循环结构学校上机经常遇到的几题 笔记
  8. 模式匹配 怎么匹配减号_如何使您的应用导航与用户的思维模式匹配
  9. linux uboot启动流程分析,uboot启动流程分析
  10. java socat_socat安装使用方法
  11. 程序员的绩效到底是应该衡量项目,还是改 Bug 量?
  12. 多张pdf怎么合成一张?pdf快速合并法
  13. ArcGIS 地统计的几种空间插值的应用范围和区别
  14. (二十)美萍酒店管理系统:系统维护_系统设置_房间类型_单个添加、多个添加
  15. matlab 矩阵位移法编程 结构力学,matlab-矩阵位移法编程-结构力学
  16. spring-cloud-starter-bus-kafka利用kafka消息总线实现动态刷新配置
  17. zk-snark之R1CS-QAP
  18. dns劫持是什么意思?常见的劫持有哪些?
  19. 化工厂需要人员定位的原因,高精度UWB化工厂人员定位-新导智能
  20. 用cadence进行原理图设计时,如何更改图纸大小?

热门文章

  1. mysql解压版(免装版)安装过程缺失data文件处理方式
  2. 考研常识:研究生单独考试是什么意思?
  3. 人工智能专业国内排名前30的高校,与你想的一样吗?
  4. sc delete:指定的服务已经标记为删除
  5. Python语言pip升级python-augeas失败之解决办法
  6. 华为P30Pro国外采用4根天线设计,为何国内却只有2根?
  7. python中值滤波去除反光_Python 实现中值滤波、均值滤波的方法
  8. 英语与计算机的整合,浅谈计算机应用与英语教学的整合
  9. oracle和mysql文件怎么打开_Oracle vs Mysql--架构、sql查询执行流程及SQL解析顺序区别说明-sql文件怎么打开...
  10. 百度测试linux面试题,百度测试开发岗位面试题目