原题是这样的
123456789这个9个数中间加2个减号1个加号等于100
想了觉得很难,很懒就写程序让计算机求解吧
def run_main():
print 'hi'
a='123456789'
x=['--+','-+-','+--']
s=0
import time
t1=time.time()
for i in x:
for j in range(0,9):
for k in range(j+1,9):
for n in range(k+1,9):
t=a[0:j] + i[0] + a[j:k]+i[1]+a[k:n]+i[2]+a[n:]
s+=1
if eval(t)==100:
print s,t
print "ok",t
print time.time()-t1
t2=time.time()
print t2-t1,s
if __name__ == "__main__":
run_main()
运行结果
hi
70 123-45-67+89
ok 123-45-67+89
0.00210404396057
0.00796008110046 252
答案就是 123-45-67+89=100
只要2毫秒就找到答案了
分享到:
相关推荐
遇到的一个算法题,做出来后分享下,c++语言编写的一个函数,通过自测。分享出来相互学习
例如,一个文本框可能只允许用户输入数字、小数点和减号,这样的需求可以通过设置一个特定的正则表达式来实现。下面我们将详细讨论如何构建这样的正则表达式以及其背后的工作原理。 首先,我们需要明确允许输入的...
这个问题可以通过生成树(Tree Generation)的方法来解决,其中树的每个节点代表一个中间结果,边代表插入的操作符。 ### 知识点二:树的遍历算法 树的遍历分为深度优先遍历(Depth-First Search,DFS)和广度优先...
2. **递归步骤**:对于每一对数,都进行加、减、乘、除四种基本运算,生成新的中间结果,并将剩余的两个数与这些中间结果再进行24点游戏。如果任一尝试能得出24,则返回true。 3. **终止条件**:如果所有可能的运算...
建立模型:1○2○3○4○5○6○7○8○9=100,给八小圆圈内填写“”(不填写任何符号)“+”“-”,如果不填任何符号,则两数直接相邻构成一个数,例如 1○2 之间不填写,默认为 12;1○2○3 之间不填写默认为 123。 ...
1. **用户界面设计**:界面应具有清晰的加减按钮,以及一个显示商品数量的输入框或标签,同时需要有一个区域展示当前选中商品的总价。 2. **事件监听**:程序需要监听用户的点击事件,当用户点击加号或减号时,触发...
这里的sqrt表示平方根,±表示结果有两个,一个是加号前面的,另一个是减号前面的。当判别式Δ=b² - 4ac大于0时,方程有两个不同的实根;等于0时,方程有两个相同的实根;小于0时,方程无实根,但有复数根。 接...
在Microsoft Word 2016中,用户可能会遇到一个常见问题:输入三个减号(---)后按下回车键,Word会自动转换这三个减号为一条横线。这种功能原本是为了方便用户快速创建分隔线,但在某些情况下可能会带来不便。本文将...
这里的sqrt()表示平方根函数,±表示有两个解,一个加号和一个减号分别对应两个可能的解。 在C语言中,编写求解一元二次方程的程序需要包含必要的头文件,如`#include <stdio.h>`和`#include <math.h>`,前者用于...
动态规划是一种强大的算法工具,常用于解决最优化问题,它通过构建子问题并储存中间结果来避免重复计算,从而高效地求解复杂问题。在这个场景中,“动态规划求表达式最大值”指的是利用动态规划策略来寻找一种在给定...
这里,sqrt() 表示平方根函数,± 表示有两个可能的解:一个是加号的结果,另一个是减号的结果。当判别式D = b² - 4ac为正时,方程有两个不同的实数解;当D为零时,方程有一个重根;当D为负时,方程有两个复数解。 ...
这个公式包含了两个可能的解,一个是加号前面的,另一个是减号前面的。在VB中,我们需要定义这些常数并计算这两个解。 首先,我们创建一个用户界面,包含三个文本框(txtA、txtB、txtC)让用户输入a、b、c的值,一...
其次,整十数加一位数的运算,是指一个整十数加上一个1到9的数字。例如,50+4=54,这里的50是整十数,4是一位数,它们相加得到54。对应的减法,如46-6=40,我们可以通过倒数的方式得到答案,也可以通过数的组成,即...
例如,"2 + 3 * (4 - 1)"就是一个典型的算术表达式。 为了高效地处理这些表达式,我们可以采用二叉树这一数据结构。在二叉树中,每个节点代表一个运算符或一个操作数,左右子节点分别代表运算符的操作数。例如,...
这里的 `sqrt` 表示平方根,`±` 表示有两个解,一个加号一个减号。 3. **因式分解法**:如果方程可以被分解成两个一次因式的乘积,那么可以直接找到其根。例如,`x^2 - 5x + 6 = (x - 3)(x - 2)`,则 `x = 3` 和 `...
- **题目描述**:在数字1至9之间添加加号或减号,使得这些数字组成的算式的结果等于99。需要分别求出从1到9排列和从9到1排列的所有可能解。 - **解题思路**:此题考查的是组合能力和逻辑思维。可以通过编程方法来...
本问题要求我们在1到9这九个连续的整数之间插入加号、减号,并保持数字的顺序不变,找出所有可能的组合方式,使得最终的计算结果等于100。例如: - `123 - 45 - 67 + 89 = 100` - `12 - 3 - 4 + 5 - 6 + 7 + 89 = ...
2. **CSS样式**:定义CSS类来控制展开和收回状态,例如,我们可以添加一个`expanded`类来改变内容的显示和图标。 ```css .content.expanded { display: block; } .toggle-icon.expanded::before { content: "-";...
这里的"±"表示有两个可能的解,一个是加号前的,另一个是减号前的。sqrt()代表平方根函数。当判别式Δ=b² - 4ac大于0时,方程有两个不同的实数根;等于0时,方程有一个重根;小于0时,方程无实数根,但有复数根。 ...
### 设计、编制并调试一个词法分析程序 #### 一、引言 词法分析是编译原理中的一个重要组成部分,其主要任务是将源代码转换为一系列的符号(tokens)。这一过程对于编译器来说至关重要,因为它为后续的语法分析、...