html+JavaScript+css 24点计算器

源代码 采用穷举计算方法

讲人话:根据四个数随机列算式,算出来是24就显示在列表里。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>24 Point Game</title>

<style>

body {

background: #f0f0f0;

font-family: Arial, sans-serif;

margin: 0;

padding: 0;

display: flex;

justify-content: center;

align-items: center;

min-height: 100vh;

}

.game-container {

background: #fff;

border-radius: 10px;

box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

padding: 20px;

width: 400px;

}

h1 {

text-align: center;

color: #333;

}

inputtype="number" {

width: 100%;

padding: 10px;

margin-bottom: 10px;

border: none;

border-radius: 5px;

box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);

}

button {

width: 100%;

padding: 10px;

background: #007bff;

color: #fff;

border: none;

border-radius: 5px;

cursor: pointer;

transition: background 0.3s;

}

button:hover {

background: #0056b3;

}

.results {

margin-top: 20px;

color: #333;

}

.results p {

margin: 5px 0;

}

</style>

</head>

<body>

<div class="game-container">

<h1>24 Point Game</h1>

<input type="number" id="num1" placeholder="Enter Number 1">

<input type="number" id="num2" placeholder="Enter Number 2">

<input type="number" id="num3" placeholder="Enter Number 3">

<input type="number" id="num4" placeholder="Enter Number 4">

<button οnclick="solve24Point()">Calculate</button>

<div class="results" id="results"></div>

</div>

<script>

function solve24Point() {

const numbers = [

parseFloat(document.getElementById('num1').value),

parseFloat(document.getElementById('num2').value),

parseFloat(document.getElementById('num3').value),

parseFloat(document.getElementById('num4').value)

];

const solutions = findSolutions(numbers);

displaySolutions(solutions);

}

function findSolutions(nums) {

const ops = '+', '-', '\*', '/';

const solutions = \[\];

const permutations = getPermutations(nums);

for (let perm of permutations) {

for (let op1 of ops) {

for (let op2 of ops) {

for (let op3 of ops) {

let expr = `({perm\[0\]} {op1} {perm\[1\]}) {op2} ({perm\[2\]} {op3} ${perm3})`;

let result = evalExpression(expr);

if (Math.abs(result - 24) < 0.01) {

solutions.push(`({perm\[0\]} {op1} {perm\[1\]}) {op2} ({perm\[2\]} {op3} {perm\[3\]}) = {result.toFixed(2)}`);

}

}

}

}

}

return solutions;

}

function getPermutations(arr) {

if (arr.length <= 2) return arr.length === 2 ? arr, \[arr\[1, arr0]] : arr;

return arr.reduce((acc, item, i) => acc.concat(

getPermutations(arr.slice(0, i).concat(arr.slice(i + 1)))

.map(x => item.concat(x))

), \[\]);

}

function evalExpression(expression) {

try {

return eval(expression);

} catch (e) {

return NaN;

}

}

function displaySolutions(solutions) {

const resultsDiv = document.getElementById('results');

resultsDiv.innerHTML = '';

if (solutions.length > 0) {

solutions.forEach(solution => {

resultsDiv.innerHTML += `<p>${solution}</p>`;

});

} else {

resultsDiv.innerHTML = '<p>No solution found.</p>';

}

}

</script>

</body>

</html>

相关推荐
孟陬12 分钟前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao21 分钟前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
小超人诞生日记39 分钟前
C++ 智能指针的使用及其原理详解
c++·算法
Highcharts.js1 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
Dream-Y.ocean1 小时前
鸿蒙PC平台星图遥感适配实战:基于 Electron 壳方案的纯 JavaScript 遥感图像处理引擎开发
javascript·electron·harmonyos
螺丝钉tina2 小时前
[Playwright ][16]Playwright + TypeScript API 自动化测试实战:API测试
前端·javascript·typescript
小天源2 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
AiNightVision4 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
Highcharts.js4 小时前
React 中原生支持使用 JSX 组件配置自定义表格 Highcharts Grid
前端·javascript·react.js·前端框架·jsx·highcharts·自定义表格
Java后端的Ai之路4 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli