c#和javascript分别轻松实现计算24点

简介:
24点游戏介绍 :给出4个1-9之间的整数(ms我当年玩的时候是用扑克牌),其中每个数字必须且只用一次;任意使用+-*/ ( ),构造出一个表达式,使得最终结果为24,这就是常见的算24点的游戏(我的老家又叫“加减乘除24”,一语中的)。
记得还是在大学毕业前找工作的时候,面过一家电子商务领域非常有名的公司,其中笔试的一题就是计算24点。当时要求用c语言写出来,虽然笔者思路清晰(玩的很熟嘛^_^),可是c不过关,上机没有通过,想起来现在依然痛心。
现在想想,当年的实现太“中规中矩”了:先用递归构造表达式,接着switch case解析表达式并计算。可是在计算表达式的地方出现问题,印象中switch case了很多次,囧。
工作快两年了,也算积累了一些肤浅的经验。利用现有语言工具的函数或方法,我们计算起来相对而言轻松多了,而且功能更强大。下面就来实现一个通用的24点算法:不限数字大小必须是1-9(为了防止除数为0的情况,0可以特殊考虑,不作为输入参数),不限最终结果(大于小于等于24皆可)。
实现思路
a、构造表达式(所有输入的数字都用到,且只能用到一次。这个用递归人人皆可以)
b、 利用c#的DataTable的Compute方法和javascript的eval函数 ,计算第一步构造出的表达式运算结果
下面将自己的实现贴出来(可是依然不会c实现^_^)。
1、c#代码:

Code

2、javascript代码:
Code
测试的网页一并贴出来:
Code
ps:本人对js函数不熟悉,不知道还有没有更直接的函数。
我个人认为上述两种实现都挺直观的。步骤二里实现计算的算法其实都转移给了语言工具(c#和js),不知道c可不可以。

好了,欢迎其他语言的高手贴出更优秀简洁的代码(尤其是c),共同交流学习,先洗洗睡了。











本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/06/04/1495313.html,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
JavaScript 前端开发
|
4月前
|
缓存 JavaScript 前端开发
深入理解Vue.js中的计算属性与侦听属性
【10月更文挑战第5天】深入理解Vue.js中的计算属性与侦听属性
52 0
|
4月前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器
48 1
|
4月前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器:深入理解与实践
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器:深入理解与实践
39 0
|
5月前
|
JavaScript
js计算时间差,包括计算,天,时,分,秒
js计算时间差,包括计算,天,时,分,秒
362 16
|
7月前
|
JavaScript
js 精确计算(解决js四则运算精度缺失问题)
js 精确计算(解决js四则运算精度缺失问题)
170 0
|
7月前
|
前端开发
大屏自适应/适配方案【详解】(echarts自适配、rem、flexible.js、vscode中px2rem插件自动计算rem)
大屏自适应/适配方案【详解】(echarts自适配、rem、flexible.js、vscode中px2rem插件自动计算rem)
754 0
|
7月前
|
JavaScript 前端开发
js/javascript 操作时间日期【全】含时间日期的创建、获取、比较、计算、格式化、时间戳、昨天、今天、星期汉化、计时、相关插件等
js/javascript 操作时间日期【全】含时间日期的创建、获取、比较、计算、格式化、时间戳、昨天、今天、星期汉化、计时、相关插件等
139 0
|
8月前
|
JavaScript 前端开发 小程序
老程序员分享:js中自然日的计算
老程序员分享:js中自然日的计算
66 0
|
8月前
|
缓存 监控 JavaScript
Vue.js中的计算属性 computed 与监听属性 watch深入探索
Vue.js中的计算属性 computed 与监听属性 watch深入探索
376 0

热门文章

最新文章

  • 1
    当面试官再问我JS闭包时,我能答出来的都在这里了。
    47
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 3
    Node.js 中实现多任务下载的并发控制策略
    34
  • 4
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 5
    【JavaScript】深入理解 let、var 和 const
    49
  • 6
    【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
    47
  • 7
    【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
    57
  • 8
    【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
    57
  • 9
    如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
    72
  • 10
    【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
    57