利用后缀表达式(逆波兰式)算24点的JavaScript版算法
作者:dh20156 来源:w3cgroup 时间:2010-01-23 10:57:00
思想:
4个数字的排列,加上3个运算符的排列,使用后缀表达式的表现如下:
情形一:
1,2,3,4,+,-,* => 24*24*4
情形二:
1,2,3,+,4,-,* => 24*24*4
情形三:
1,2,3,+,-,4,* => 24*24*4
情形四:
1,2,+,3,-,4,* => 24*24*4
情形五:
1,2,+,3,4,-,* => 24*24*4
每种表现形式后面的24为4个数字的排列,4个运算符的排列,后面的4为运算符可能出现的4种情形,以第一种情况为例:
1,2,3,4,+,-,*
1,2,3,4,+,-,+
1,2,3,4,+,+,-
1,2,3,4,+,+,+
至此,大概的算法思想可以总结如下:
声明数据栈ds,保存要计算数字的排列结果;
声明算符栈os,保存四则算符的排列结果;
遍历数据栈,每次按上面列出的后缀表达式数据格式,通过遍历算符栈进行整理组合,直到结束,即可得到所有的计算表达式。
将这些表达式求值,将符合要求(即等于24,由于计算精度问题,大于23.99的结果也算正确)的结果保留,最后还需要一个将后缀表达式转换为中缀表达式的过程。
标签:算法,逆波兰式,JavaScript
0
投稿
猜你喜欢
PHP实现图片合并的示例详解
2023-06-08 14:14:07
sql查询点滴记录
2024-01-14 14:30:19
Python安装第三方库及常见问题处理方法汇总
2022-11-22 04:40:51
javascript 45种缓动效果(二)
2009-09-19 18:53:00
ExtJs事件机制基本代码模型和流程解析
2024-05-03 15:59:14
vue使用iframe嵌入网页的示例代码
2024-05-05 09:12:04
python tensorflow学习之识别单张图片的实现的示例
2023-06-30 21:11:32
多栏自适应布局问题浅谈
2010-08-16 12:56:00
使用python生成杨辉三角形的示例代码
2023-04-03 18:42:31
DataFrame.to_excel多次写入不同Sheet的实例
2022-03-26 01:20:14
Python实现猜年龄游戏代码实例
2021-01-17 09:53:04
Python基础语法之容器详解
2022-01-07 23:20:19
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2022-01-12 14:02:31
python代码实现小程序登录流程时序总结
2022-10-16 17:30:14
JSP实现浏览器关闭cookies情况下的会话管理
2024-03-27 07:29:10
Shellcode加密解密函数
2009-04-24 11:18:00
SQL Server正则表达式 替换函数应用详解
2024-01-28 06:01:16
SQL Server DATEDIFF() 函数用法
2024-01-17 16:18:16
python中利用队列asyncio.Queue进行通讯详解
2023-02-13 03:52:58
JS实现不规则TAB选项卡效果代码
2024-06-20 03:54:32