<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta name="Author" content="Netdream Ltd. - Ma Li" />
<head>
<title>Order by des...destiny</title>
<style type="text/css">
body
{
font-size: 12px;
font-family: Corbel;
}
.clear
{
clear: both;
}
.count
{
float: left;
margin-right: 20px;
margin-bottom: 10px;
}
input[name='txtnums']
{
width: 30px;
}
#txtshow
{
font-size: 16px;
font-weight: bold;
letter-spacing: 5px;
color: #ff0000;
}
</style>
<script type="text/javascript">
var opArr = new Array("+", "-", "*", "/");
var target = 24;
function Plan(arr, len, target) {
for (var i = 0; i < len; i++) {
for (var j = i + 1; j < len; j++) {
var ji = [arr[i], arr[j]];
arr[j] = arr[len - 1];
for (var q = 0; q < opArr.length; q++) {
arr[i] = '(' + ji[q % 2] + opArr[q] + ji[(!(q % 2) * 1)] + ')';
if (Plan(arr, len - 1, target)) {
return true;
}
}
arr[i] = ji[0]; arr[j] = ji[1];
}
}
return (len == 1) && (eval(arr[0]) == target);
}
function Result(arr, target) {
if (Plan(arr, arr.length, target)) {
var str = arr[0].substring(1, arr[0].length - 1);
return arr[0].substring(1, arr[0].length - 1) + "=" + String(target);
} else { return "Can't write:" + target; }
}
function show() {
var numsArr = new Array();
var nums = document.getElementsByName("txtnums");
var txttarget = document.getElementById('lblresult').innerHTML;
for (var i = 0; i < nums.length; i++) {
if (!CheckInt(nums[i].value)) {
alert('Please Check Your Input Value! The Value must be an integer~');
return false;
}
numsArr.push(nums[i].value);
}
document.getElementById("txtshow").innerHTML = Result(numsArr, txttarget);
}
function CheckInt(input) {
var reg1 = /^\d+$/;
return reg1.test(input);
}
</script>
</head>
<body>
<div class="count">
<input type="text" name="txtnums" maxlength="4" />
</div>
<div class="count">
<input type="text" name="txtnums" maxlength="4" />
</div>
<div class="count">
<input type="text" name="txtnums" maxlength="4" />
</div>
<div class="count">
<input type="text" name="txtnums" maxlength="4" />
</div>
<div id="lblresult" style="display: none;">
</div>
<script>
document.getElementById('lblresult').innerText = target;
</script>
<div class="count">
<input id="btnshow" type="button" value="Click!" onclick="show()" /><br />
</div>
<div class="clear">
</div>
<div id="txtshow">
</div>
</body>
</html>

js计算24点的更多相关文章

  1. JS计算24节气的方法

    function getjq(yyyy,mm,dd){ mm = mm-1; var sTermInfo = new Array(0,21208,42467,63836,85337,107014,12 ...

  2. JS计算字符串所占字节数

    最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的.而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16. ...

  3. js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数

    js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数 >>>>>>>>>>>>>>>>>& ...

  4. js计算两个日期的天数差值

    js计算两个日期的天数差值 通过两个日期计算这两个日期之间的天数差值 /** * 计算天数差的函数,通用 * @param sDate1 * @param sDate2 * @returns {Num ...

  5. Vue.js 计算属性是什么

    Vue.js 计算属性是什么 一.总结 一句话总结: 模板 表达式 维护 在模板中表达式非常便利,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护 ...

  6. JS计算两个日期之间的天数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  8. js 计算快速统计中用到的日期

    前言 最近在做统计报表模块,其中查询条件用到了快速查询,主要为了方便客户统计查询常用的几个日期纬度,比如本周.上周.本月.上月.昨日. 使用js计算,主要用到了js Date. getDate().g ...

  9. js计算字符串的字节数和字符串与二进制的相互转化

    一.js计算字符串的字节数方法: //blob获取字符串的字节 var debug = "好的"; var blob = new Blob([debug],{type : 'tex ...

随机推荐

  1. CSS的4种引入方式及优先级

    第一:css的四种引入方式 1.行内样式 最直接最简单的一种,直接对HTML标签使用style="",例如: <p style="color:#F00; " ...

  2. Java数据结构——解析算术表达式

  3. Qt5+VS2012编程

    安装配置 http://www.bogotobogo.com/Qt/Qt5_Visual_Studio_Add_in.php Qt5+GL http://qt-project.org/doc/qt-5 ...

  4. .NET获取服务器信息,如服务器版本、IIS等

    .NET获取服务器信息,如服务器版本.IIS等 .NET获取服务器信息,如服务器版本.IIS版本.数据库大小.网站系统空间占用大小.网站部署路径等等 .NET获取系统环境信息 #region 返回操作 ...

  5. linq按条件sum

    var result = fruit.GroupBy(i => i.date) .Select(i => new { date = i.Key, no_of_apple = i.Where ...

  6. Effective Objective-C 2.0 — 第13条:用“方法调配 技术” 调试 “黑盒方法”

    自己理解是调配了方法 在运行期,可以向类中新增或替换选择子所对应的方法实现. 使用另一份实现来替换原有的方法实现,这道工序叫做“方法调配”,开发者常用此技术向原有实现中添加新功能. 一般来说,只有调试 ...

  7. Yii2-admin RBAC权限管理的实现

    原文地址:http://www.open-open.com/lib/view/open1434638805348.html   http://wlzyan.blog.163.com/blog/stat ...

  8. AndroidManiFast 字段意义

    每个Activity都要在本文件中注册. <Activity>下的<Intent-filter>中. 两个字段的意思是: <action android:name=&qu ...

  9. 浅谈JavaScript中的定时器

    引言 使用setTimeout()和setInterval()创建的定时器可以实现很多有意思的功能.很多人认为定时器是一个单独的线程(之前我也是),但是JavaScript是运行在单线程环境中的,而定 ...

  10. Java多线程编程核心技术---单例模式与多线程

    立即加载/饿汉模式 立即加载就是使用类的时候已经将对象创建完毕. public class MyObject { //立即加载方式==饿汉模式 private static MyObject myOb ...