当前位置:首页 > JavaScript

原生js实现鸡兔同笼

2026-01-31 11:00:50JavaScript

鸡兔同笼问题的数学原理

鸡兔同笼问题是一个经典的数学问题,通常描述为:已知笼子里有若干只鸡和兔,总共有h个头和f只脚,问鸡和兔各有多少只?
假设鸡的数量为x,兔的数量为y,可以列出以下方程组:

原生js实现鸡兔同笼

  • 头的总数:x + y = h
  • 脚的总数:2x + 4y = f

解这个方程组可以得到:

原生js实现鸡兔同笼

  • 兔的数量:y = (f - 2h) / 2
  • 鸡的数量:x = h - y

原生JavaScript实现

以下是使用原生JavaScript实现鸡兔同笼问题的代码示例:

function solveChickenRabbit(heads, feet) {
    // 检查输入是否合法
    if (heads <= 0 || feet <= 0) {
        return "头和脚的数量必须为正数";
    }
    if (feet % 2 !== 0) {
        return "脚的数量必须是偶数";
    }

    // 计算兔子和鸡的数量
    const rabbits = (feet - 2 * heads) / 2;
    const chickens = heads - rabbits;

    // 检查结果是否合法
    if (rabbits < 0 || chickens < 0) {
        return "无解,数量不匹配";
    }

    return {
        chickens: chickens,
        rabbits: rabbits
    };
}

// 示例调用
const result = solveChickenRabbit(10, 28);
console.log(result); // 输出: { chickens: 6, rabbits: 4 }

代码说明

  1. 输入验证:函数首先检查头和脚的数量是否为正数,以及脚的数量是否为偶数(因为鸡和兔的脚数都是偶数)。
  2. 计算逻辑:根据数学公式计算兔子和鸡的数量。
  3. 结果验证:检查计算出的数量是否为非负数,否则返回无解。

扩展功能

如果需要更友好的用户交互,可以结合HTML实现一个简单的界面:

<!DOCTYPE html>
<html>
<head>
    <title>鸡兔同笼计算器</title>
</head>
<body>
    <h1>鸡兔同笼计算器</h1>
    <label for="heads">头的总数:</label>
    <input type="number" id="heads" min="1"><br>
    <label for="feet">脚的总数:</label>
    <input type="number" id="feet" min="1"><br>
    <button onclick="calculate()">计算</button>
    <p id="result"></p>

    <script>
        function calculate() {
            const heads = parseInt(document.getElementById("heads").value);
            const feet = parseInt(document.getElementById("feet").value);
            const result = solveChickenRabbit(heads, feet);

            if (typeof result === "string") {
                document.getElementById("result").textContent = result;
            } else {
                document.getElementById("result").textContent = 
                    `鸡的数量:${result.chickens},兔的数量:${result.rabbits}`;
            }
        }

        function solveChickenRabbit(heads, feet) {
            if (heads <= 0 || feet <= 0) {
                return "头和脚的数量必须为正数";
            }
            if (feet % 2 !== 0) {
                return "脚的数量必须是偶数";
            }

            const rabbits = (feet - 2 * heads) / 2;
            const chickens = heads - rabbits;

            if (rabbits < 0 || chickens < 0) {
                return "无解,数量不匹配";
            }

            return {
                chickens: chickens,
                rabbits: rabbits
            };
        }
    </script>
</body>
</html>

注意事项

  1. 输入验证:确保用户输入的数据是合法的,避免负数或非数字输入。
  2. 无解情况:如果脚的数量不足以满足头的数量(例如10个头但只有10只脚),函数会返回无解。
  3. 扩展性:可以根据需要扩展功能,例如支持更多动物类型或更复杂的条件。

标签: js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #34…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…